Home > Article > Web Front-end > jquery $.getJSON() cross-domain request
I never understood what was going on before, but now I have no choice, so I read the documentation carefully, and finally the test was successful. Note
1, and other requests under the same domain name can be The same
js:
The code is as follows:
var url="http://localhost:2589/a.ashx";
$(function() {
$.getJSON(url,function(data){
alert (data.Name);
})
});
Server returns String:
{"Name":"loogn","Age":23}
2, under different domain names
js:
Code As follows:
var url="http://localhost:2589/a.ashx?callback=?";
$(function(){
$.getJSON(url,function(data ){
alert (data.Name);
})
});
The server returns a string:
jQuery 1706543070425920333_1324445763158({"Name":"loogn","Age":23})
The returned string is a function called "jQuery1706543070425920333_1324445763158", the parameter is {"Name":" loogn","Age":23}.
In fact, this very long function name is the function of callback=? in the request path. I think it should be like this: The $.getJSON method generates a name that references the callback method, replace it? . The above request will become http://localhost:2589/a.ashx?callback=jQuery1706543070425920333_1324445763158&_=1324445763194. The server needs to process it when returning json, such as:
string cb = context.Request["callback"]; context.Response.Write(cb + "(" + json + ")");
The parameter name callback can also be replaced by jsoncallback. I think it is because of fear of conflict. jsoncallback should be detected first, and callback should not be detected again (not tested!!)
? It can also be a specific function name, so that
callback function cannot be anonymous. Use? Generation is just a convenience provided by jQuery for our general operations.
The above is the detailed content of jquery $.getJSON() cross-domain request. For more information, please follow other related articles on the PHP Chinese website!