I\'m writing an app and I need to access some json data in the client side from another server. Because of the cross domain issue I plan on using jsonp. jQuery allows me to
I encountered this error before, and solved after using jquery-JSONP
[Example]
$.getJSON('http://server-url/Handler.ashx/?Callback=DocumentReadStatus',
{
userID: vuserID,
documentID: vdocumentID
},
function(result) {
if (result.readStatus == '1') {
alert("ACCEPTED");
}
else if (result.readStatus == '0') {
alert("NOT ACCEPTED");
}
else {
alert(result.readStatus);
}
});
for parsing external feeds, and catching possible errors, you can use this
function GetContent(feedUrl)
{
var feedApiGetJSON = 'http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q=';
$.ajax({
url: feedApiGetJSON + feedUrl,
dataType: 'jsonp',
jsonpCallback: 'JsonpCallback'
});
}
function JsonpCallback(data) {
if (data.responseStatus == "200")
alert(data.responseData.feed.title);
else
alert(data.responseDetails);
Replace: datatype with dataType
When the dataType is jsonp, jquery won't fire the error function automatically. This is described in the documentation under the "error" option:
Note: This handler is not called for cross-domain script and JSONP requests. see here.
The workaround is to explicitly specify a timeout as an option. If the server doesn't respond in the specified amount of time then the error function will be called. More about this here.