2013-09-21 76 views
4

我們有一個場景,我們需要將數據從我們的域(x.com)發佈到不同的域(y.com)。 y.com上的操作歸於HTTPPost,可以更改。但在使用AJAXJSONPHTTPMethod POST向y.com發佈數據時,請求會自動轉換爲HTTPMethod GET無法在跨域上使用JSONP發佈數據

回答

4

您不能使用JSONP(看herehere),因爲它只是doesn't work that way - 它創建了一個<script>元素來獲取數據,這必須要通過GET請求來完成。 JSONP解決方案不使用XmlHttpRequest對象,因此它不是標準理解方式中的AJAX請求,但內容仍然是動態訪問的 - 對於最終用戶沒有差別。

JSONP可確實是用來克服same origin policy限制,但你也可以用CORS,在現代瀏覽器alternative以JSON與填充來實現。

+0

感謝您的回答。 –

0

JSONP請求是GET請求並且不能用POST請求進行請求。如果您想要將發佈請求發送到Cross origin Resource Sharing。

0

作爲一項解決方案,您可以使用postMessage解析CrossDomain通信,這是HTML5的一項新功能。但是,爲了解決問題,您需要使用iframe,如果您不想顯示某些iframe,則可以使用display:none css屬性創建1x1px。 這將讓你實現你的目標。