PHP,jQuery Ajax和json返回跨域

我在一台服务器上有我的PHP编码页面,返回一个json结果。 php文件名为:getInfoData.php,返回如下。

echo json_encode($v); 

不,我可以使用$ .getJSON(??)来读取json并在相同的服务器上运行它,但我需要将php页面放在与调用它的js页面不同的服务器上。

但是当我这样做时,我得到了跨域问题。

所以我更改了代码以使用以下(jsonp):

  $.ajax({ url: 'FILE_LOCATION_ON_ANOTHER_SERVER', type: 'GET', crossDomain: true, dataType: 'jsonp', success: function() { console.log("Success"); }, error: function() {console.log('Failed!'); } }); 

但我没有看到任何东西我只是通过我的控制台得到以下内容:

  http://www.THEURL.com/FOLDER/FILENAME.php?callback=jQuery171013088115444406867_1332256223342&_=1332256223343 

和一条消息说失败了!

我做错了什么,如果能解决这个问题怎么办?

谢谢

JSONP实际上不是JSON。 这有点像“黑客”。 JSONP实际上是一个JavaScript文件,可以下载并运行。

在PHP页面中,您应该传递一个callback参数。 你需要在其中“包装”你的JSON。 它应该如下所示:

 func({json: data}) 

所以,你的PHP应该是这样的:

 echo $_GET['callback'] . '(' . json_encode($v) . ')'; 

我经常使用它,但也许有更好的方法

  

因为我看到你提供了一个回调参数,一切都应该没问题