2010-09-08 61 views
0

我喜歡與JSON和jQuery的工作。當我在本地主機上的腳本離線測試它工作正常,但是當我改變這個JSON文件到服務器,它好好嘗試一下工作的人都JSON與PHP和Jquery

jQuery(function($) { 

    $.ajax 
    ({ 
     type: "GET", 
     url: "test.php", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: companySearchSuccess, 
     error: onError 
    }); 



function companySearchSuccess(json) 
{ 
    alert("stap1"); 
var select = $('#city-list'); 

       $.each(json, function(k, v) { 
         var option = $('<option />'); 

         option.attr('value', v) 
           .html(v) 
           .appendTo(select); 
       }); 

} 

function onError(m){ 
alert("Fout is: "+m); 
} 

}); 

這工作得很好,

但這個不是:

jQuery(function($) { 

    $.ajax 
    ({ 
     type: "GET", 
     url: "http://www.example.com/test.php", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: companySearchSuccess, 
     error: onError 
    }); 



function companySearchSuccess(json) 
{ 
    alert("stap1"); 
var select = $('#city-list'); 

       $.each(json, function(k, v) { 
         var option = $('<option />'); 

         option.attr('value', v) 
           .html(v) 
           .appendTo(select); 
       }); 

} 

function onError(m){ 
alert("Fout is: "+m); 
} 

}); 

的錯誤是:XmlHttpRequest對象>

請幫我

回答

2

如果您在本地主機上運行您的應用程序,並嘗試將您的xml http請求指向另一個域,那麼您違反了相同的源策略,並且瀏覽器實際上不會執行請求。

我所知道的2種選擇:

1)使用JSONP。顯然目標服務器必須支持jsonp
2)如果你控制目標域/服務器,在你的dev配置中使協議,域名,端口匹配。這是您可以在本地主機上部署服務器版本的情況。