2011-07-25 130 views
5

我必須進行POST調用(帶參數)到位於另一臺服務器上的asp窗體。跨域AJAX後通話

對於開發,我在同一臺服務器上完成了這項工作,並且完美地工作,但現在我正在另一臺服務器上測試它,而不是接收200狀態,我收到0狀態。

我認爲這是因爲它是一個跨域的AJAX調用,它是唯一改變的。那麼我怎麼能打這個電話呢?是否有任何文件可以放在服務器/客戶端上以允許此呼叫(如閃存,...)?

謝謝!

+0

對於進一步的幫助,我們可能需要知道ajax調用 – dvhh

回答

7

是,假設你可以更改服務器連接到

您可以實現Cross Origin Resource Sharing (CORS)

你需要服務器返回Access-Control-Allow-Origin: *如果要允許所有域訪問,否則返回Access-Control-Allow-Origin: http://yourdomain.com

如果您無法更改正在訪問的服務器,則需要在腳本所來自的服務器上使用代理服務器,或者調查是否已發佈API以返回例如JSONP

更多詳細的

和幾個鏈接的這個權利(如何)問題

+1

的natre,目前支持似乎非常有限。 – dvhh

+0

我看了一下你的鏈接,但我找不到應該在哪裏聲明所有這些「Access-Control-Allow-Origin」,... – J4N

+0

@dvhh - 它受到大多數現代瀏覽器支持,即FF3.5 + ,Safari5,IE8 +(使用XDR) – mplungjan

0

你可以創建一個代理腳本,或者使用jsonp。 更簡單的過程將是在您的服務器上使用代理腳本。

+0

不幸的是,我無法修改服務器上的任何東西 – J4N

+0

另一種解決方案是重寫您的ajax調用使用iframe來代替(不幸的是,這是一個小狗) – dvhh

+0

@dvhh但他只能發送數據,沒有收到任何回覆 – mplungjan