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
since a few days i try to load external html content from another domain. obviosly it is hard to access cross domain content wit javascript ajax methodes. first i' ve tried iframes but access denied. after that I' ve tried $.ajax but all request returned zero byte data from server. here is a way that seems to work but raise an error while processing data from text to json object
i can see the server response in firebug and it requests the html data. but as i sayd i raise an error while converting to json. any chance to get raw data before jquery konversion? or maybe any other way (s) to request html data in text format from cross domain?
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 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 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.
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 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.
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 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'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.
If running off of the local filesystem, in Firefox, or if the security settings are set appropriately, in Internet Exporer, XmlHttpRequests can be sent to any domain of your chosing. But what about cookies? Can cookies be accessed for any domain of your chosing?
For example, although www.domaina.tld can't access cookies for www.domainb.tld, can c: access cookies for www.domainb.tld?
The way cookies are accessed in javascript (document.cookies) would suggest not, but I just wanted to make sure.
Im trying to make a "Search Many Sites from One Location". Heres my problem:
I have a form on my page which allows the user to enter a search term and select which site he would like the results from.
(the sites dont allow URL pasting) the sites are library catalogues.
heres my idea, can this be done?: User enters search term, selects site they want results from and enters submit.
This takes user to a framed page with frame1 being library catalogue. now either the frameset or frame 2 does this at timed interval gets the variable that was submited from search term entered and uses something like this bookmarklet
I'm new to this group, and after doing a lot (and I mean a LOT) ofsearching, I can't find an answer for my problem:I'm basically trying to do a simple $.getJSON, and the setup issimple:Firefox 3.5 MacOSX, latest jQuery (1.3.2)the json file named "myjson.json" (I've reduced its contents to itsminimum for testing purposes and it validates in JSONLint):
{"result": "true"} The javascript: $.getJSON('http://site1:8888/myjson.json', {}, function(data) { alert
I'm building a web app that provides music information (i.e. info on artists, albums, songs, etc.) and for the info source I'm using the MusicBrainz API.
Now, I'm trying to load the data from an API call and process it, with jQuery.
This is the code I'm using:
With 'queryString' being the URL string for the request, and then I'd proceed to read the data out of the 'xml' object. Fairly simple.
However, this is where problems arise. The code works flawlessly when running locally on my computer, but does not work at all when I upload everything to my web server and try to run it there. I did some reading and have discovered that AJAX calls can't be made across different domains, due to security issues.
So I've read through numerous solutions, but almost all require either something with PHP (which I have absolutely NO knowledge of) or grabbing the data in JSON format (which apparently isn't subject to the same security restrictions). However, my main problem is that the MusicBrainz API does not return data in JSON format (in fact the only format it returns is XML).
JavaScript code is not traversing via Iframe with Cross Domain. Actually i was assigned with a project, to grab the top page URL, which has many Iframes, which are coming from different domains. The final sub domain has the JavaScript code, which has to grab the top page URL.