跨域,但服务器数据不是 JSON 格式 [关闭]

Posted

技术标签:

【中文标题】跨域,但服务器数据不是 JSON 格式 [关闭]【英文标题】:Cross domain, but server data not of JSON format [closed] 【发布时间】:2013-02-20 09:36:54 【问题描述】:

Hej,我想从远程服务器访问 Web 服务,但存在跨域问题。我尝试了 JSON,因为它在另一个脚本中工作,但这次它生成了“SyntaxError”,然后我发现服务上的数据不是 JSON 格式。

所以现在我在考虑两种方法。首先,将格式更改为JSON;其次,我读过一些建议php Web Proxy 的文章。但是似乎两种方式都需要服务端的一些代码,任何方法只涉及客户端的编码?对于第一种方式,如何将内容格式化为 JSON?

【问题讨论】:

-1 SO 不能替代basic research。 php.net/manual/en/function.json-encode.php @Sazzad Hossain Khan,感谢您的帮助,所以这是关于服务器端的编码?有没有办法只在客户端编程来解决这个问题? 【参考方案1】:

首先,您需要一台服务器来获取服务。有两种通用的请求和响应格式:XML 或 JSON 格式。因此,每当您需要服务时,您都会向服务器发送请求。如果服务器有可用的请求服务,那么服务器将响应您。我更喜欢 JSONP。

因此,对于使用 JSONP 进行跨域通信,您可以关注:http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

要以 JSON 格式响应,您可能需要返回:

$myReturnData = array("its"=>"an array","its"=>"an array");
  print $_GET['jsoncallback']. '('.json_encode($myReturnData, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE).')';

【讨论】:

以上是关于跨域,但服务器数据不是 JSON 格式 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

说说JSON和JSONP,浅析JSONP解决AJAX跨域问题

在vue中使用axios实现跨域请求并且设置返回的数据的格式是json格式,不是jsonp格式

ajax跨域请求的处理

JSONP原理,怎样实现跨域?

JSON和JSONP,也许你会豁然开朗,含jQuery用例

说说JSON和JSONP,也许你会豁然开朗,含jQuery用例