2013-03-05 50 views
-4

Hej,我想從遠程服務器訪問Web服務,並且存在跨域問題。我試過JSON,因爲它在另一個腳本中工作,但是這次它生成了「SyntaxError」,然後我發現服務上的數據不是JSON格式。跨域,但服務器數據不是JSON格式

所以現在我正在考慮兩種方法。首先,將格式更改爲JSON;其次,我讀過一些建議PHP Web Proxy的文章。但是,似乎這兩種方式都需要服務端的一些代碼,任何只涉及客戶端編碼的方法?對於第一種方式,我如何將內容格式化爲JSON?

+0

-1 SO不是[基礎研究的替代品](https://www.google.com/search?q=JSON+cross+domain)。 – iambriansreed 2013-03-05 20:05:48

+0

http://www.php.net/manual/en/function.json-encode.php – itsazzad 2013-03-05 20:07:58

+0

@Sazzad Hossain Khan,感謝您的幫助,所以這是關於服務器端的編碼?有什麼方法可以通過在客戶端編程來解決這個問題嗎? – trivial 2013-03-05 20:57:11

回答

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).')';