JQuery :: AJAX Cross Domain Call - 200 But Still Getting Firebug / Js Error
May 4, 2011
I trying to make a call to an external domain using $.ajax() and it WORKS, the server receives the call, but the response in firebug errors out in jquery.js line 7760. I've been beating my head at this all day and don't feel like I've made it much further.
I suspect it has something to do with the dataType or type of the request. But I've tried all kinds of things from POST to GET to JSONP in the type. For dataType, I've also tried "html", "text", "xml", "json", and even some combos of "text html" but no success.
I am recentlyexperiencinga problem with .ajax calling cross domain asp.net webservice. It started working fine, until the data returned from server is becoming too big and suddenly the ajax call caused errors, if i reduce the data length then the error went away. After doing some debug, i have identified the problem being the callback was inserted into the returned data.
Is it possible to use $.ajax to call an external web service directly, or do I need to write a dot net server-side wrapper to consume the web service, then call the wrapper from jQuery ?
I have attempted a direct call as shown below, which works fine in IE but generates an error in Firefox, which I presume relates to the cross-domain scripting issue.
All I'm doing righthere is calling a Perl script on an intranet server and using the xml results to popluate a <select> element. This works on my machine but a co-worker is getting a "Permission Denied" error when this function is executing onReady
function populateGroups(){ var p = 1; var groupNames = new Array(); $.ajax({ type:"GET", .....
I had him run a tracert to that server and we all connected through the same network devices... And this works on a couple of other co-worker's computers. He also does have access to that server so that he can type in the url and get the xml results...
I'm fairly new to javascript and JQuery so please bear with me. I've written a simple app using JQuery whose purpose is to select the fastest mirror site. To this end I use several $.ajax calls - one to each mirror site -and I don't do anything with the data I get from these, I only use the order in which they respond to sort the sites from fastest to slowest. I'd share the code, but really the only thing it does is call the $.ajax function and append a line in a table using the success: callback. This works perfectly fine for most browsers, except IE which throws the 'access is denied' error. I know about cross domain restrictions and understand the reasoning behind - my plan was to put my script in the 'trusted' zone and enable the required options to bypass the problem as this will be used in a controlled environment, but no matter what I try my code won't run in IE. Some of my mirror sites are indeed in a different domain. What I have trouble understanding is why all other browsers (FF, Chrome etc), with their default configuration, allow my code to run flawlessly? If the reasoning behind IE blocking this is correct, then why do others allow it? Also obviously for my purpose using a server-side proxy makes no sense as I want to test the sites from the client side, not from the server. I've also read about other work arounds such as JSONP but unfortunately the sites that I'm testing cannot support this. But once again, what I'm really wondering about is why my code works flawlessly in other browsers..
I'm writing a web page, which should interact with pages on another server using an iFrame. I want to use a form on the parent page to post to the URL on the iFrame and capture the response, without reloading the parent page.
Here are the details:I have a FORM on the parent JSP page, with some session data in hidden fields. The point to note is that the whole session data is on the client side, in encrypted form. This data should be posted to the server for each request, synchronous or asynchronous.Now, I need to call an application on a server on a different domain. For this purpose, I am using an iFrame. The session data in the parent page should also be passed to the application in the iFrame.
Can you see an ajax call in Firebug when using $.getJSON? If so, does it return the jsonobject correct? Maybe there are some enters or something in front of the json?
I have a web application where window A opens window B (same site). B later wants to do something depending on whether the window A, window.opener.document.domain, has changed.
However, there doesn't seem to be a way to actually check whether A has moved to a different domain without triggering (in IE) a security violation and completely aborting the script. If the user has enabled debugging, this also brings up an annoying dialog box.
I'd like to either catch this exception somehow or be able to tell beforehand whether I can access window.opener.* attributes successfully. According to:
the only thing I can do is to *write* to the various attributes.
Can anyone suggest a way to work around this? I am not interested in accessing the location/domain of the new page, just whether the window has left my domain.
I'm writing this post as there are alot of questions about Cross Domain AJAX request so i'm going to give an overview of the different ways and the best practices Ok so there are 2 systems for this the key difference is how much control you have.
If you control the Requested site you can use Javascript Safe calling to that server, this is all done via a few Headers so to do this all you have to do is send some headers from the page your requesting.
The first is tell the browser that the site the AJAX call is coming from is allowed this is done with
"Access-Control-Allow-Origin: " Now this can be set to a wild card and allow all sites to access the page
"Access-Control-Allow-Origin: *" Or you can say only a set server can "Access-Control-Allow-Origin: mydomain.com"
This header allows GET requests but what if you need to post data to the site well you need to tell the browser that POST data is allowed to be sent Access-Control-Allow-Headers: GET,POST
Now we run into the problem that sending post data the browser will send the header Content-Type but your server has not told the browser its allowed to send that header so Access-Control-Allow-Methods: Content-Type Will allow the header to be sent if you wish to send any other custom headers you have to make your server tell the browser its allowed to send them this is done by adding them as a comma delimited list via the "Access-Control-Allow-Headers" header
Now if you dont have control well then your back to using a script that is local to the AJAX script then sending the data via cURL or another connection method to the remote server
I know cross domain Ajax request are denied due to the security issues. As an alternative to this, I have heard of using JSON. I tried to use that, but I am unable to get it work. I had also tried the jQuery's $.getJSON() that didnot work as well.
Could you please provide me some working examples for this case?
I got this working in FireFox if I changed headers to Access-Control-Allow-Origin: * With IE7 I'm getting "Access is denied" error. And with IE7 I can't use XDomainRequest.Is there some workaround besides creating proxy? Like using another request method(PUT?)?
I'm making a script that requires cross-domain scripting to get the statuscode of other files. I'm currently using a small PHP script to relay the files from the remote server onto mine. If I want to get the files directly using AJAX, it is not allowed for obvious reasons. I don't want the actual files, I only want to get the status code of that file, and it is going to be either a 404 or a 301. I would've assumed that as the AJAX call is never attempted, the statusCode will be 0, and this is what the actual call variable returns.
However, in Firebug it shows the statuscode next to the request (404 or 301), even if, the call has never been made. Why is the statuscode appearing in Firebug but not in the statuscode variable?
I'm doing a JSONP query of a Wordpress database. Example call:[URL].. This code returns the expected data when executed on my local server. It also returns the expected data when I upload it to one of my remote servers. But it fails when run from the root of the domain it's calling, [URL]... no data is returned. (Behavior is the same for latest versions of Firefox, Safari, Chrome.)
I think there's something really simple going wrong here but don't know what it is. The only clue I have is provided by Firefox: When run successfully, all of the GET's appear in the JS subpanel of NET. The failed calls, launched from the domain containing the database, are listed in the XHR subpanel with a status of "301 Moved Permanently".
I am using .ajax() to access cross-domain data using JSONP. Because I need to be able to cache the data I want to use a static name for thejsonpCallback function, so I have set the jsonpCallback option in the .ajax() request. However that appears to requires a global function whereas the auto generated function didn't (well maybe it did but that was all hidden from me).
I definitely need to be able to cache the results. Ideally I wouldn't have a global function handling the data. Is there another way to do this? If not what is the best practice way to go about using a global function these days and how do I provide it with the context of the object/module it was called from - which is where the data is needed?
I wish to make an AJAX call to a script on a different domain - realise this is a security problem, but is this at all possible?
My client is embedding html web pages into his ebay listings, and he wants to centrally update the product information. Maybe there is a different / better way to go about this?
Is there any way to resize an iframe dynamically to the height of its content that works cross browser and works when the iframe content is on another domain than the main page (I have access to both pages, so code can be put in either) Also, it must resize when links in the iframe are clicked (ie when a new page within the iframe is loaded)
I'm trying to write a script that will be loaded from one server into a website on another server. This script is trying to talk (ajax) to the server that it comes from but I'm getting "Access Denied" errors. I'm well aware that cross-domain calls are not allowed for security reasons so my question is how does Google Analytics work because essentially thats what I'm trying to accomplish. I can embed a Google Analytics script into my website and it'll gather data and send it back to Google.