2010-09-08 49 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配置中使协议,域名,端口匹配。这是您可以在本地主机上部署服务器版本的情况。