Cross domain ajax response failing

故事扮演 提交于 2019-12-25 16:46:43

问题


Ok...so ive been wriggling around with this piece of cod for quite a while now...

first i used this code which worked...


$(document).ready(function() {
$('#content').html('');
$.ajax({
        url:'data.json',
        dataType: "json",
        success: function(data) {
                $('#content').append('

'+data.rank+'

'); } });});

In this code (it works) data.json contains the JSON data in this format:

{ "user_id":"3190399", "user_name":"Anand_Dasgupta", "followers_current":"86", "date_updated":"2009-06-04", "url":"", "avatar":"205659924/DSC09920_normal.JPG", "follow_days":"0","started_followers":"86", "growth_since":0, "average_growth":"0", "tomorrow":"86", "next_month":"86", "followers_yesterday":"86", "rank":176184, "followers_2w_ago":null, "growth_since_2w":86, "average_growth_2w":"6", "tomorrow_2w":"92", "next_month_2w":"266", "followersperdate":[] }

This data comes from the URL:

http://twittercounter.com/api/?username=Anand_Dasgupta&output=json&results=3 (Click the URL to get the data)

But when I replace data.json in the $.ajax function with the URL which contains the same data, this code below doesn't seem to work...


$(document).ready(function() {
$('#content').html('');
$.ajax({
      url:'http://twittercounter.com/api/?username=Anand_Dasgupta&output=json&results=3',
        dataType: "json",
        success: function(data) {
                $('#content').append('

'+data.rank+'

'); } });});

I had earlier put this question forth on StackOverflow and responses were that this is a cross domain problem.

So i read about cross domain ajax request and this is the code that i came up with:


$(document).ready(function() {                      
    $('form#search').bind("submit", function(e){                            
            e.preventDefault();
            $('#content').html('');

// Define the callback function
  function get(jsonData) {     
     $('#content').append('

'+jsonData.rank+'

'); bObj.removeScriptTag(); } // The web service call var req = 'http://twittercounter.com/api/?username=Anand_Dasgupta&output=json&results=3&callback=get'; // Create a new request object bObj = new JSONscriptRequest(req); // Build the dynamic script tag bObj.buildScriptTag(); // Add the script tag to the page bObj.addScriptTag(); }); });

But even doesnt seem to be working.

If anyone can provide any help then it will be deeply appreciated. I have given the entire code so that anyone could test it themselves if they want to.

Thank you Anand


回答1:


You have to see if the site in question supports JSONP.

You have to also use the dataType option in your ajax call set to 'jsonp', as well as specify the correct callback argument.



来源:https://stackoverflow.com/questions/1073672/cross-domain-ajax-response-failing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!