2013-01-04 69 views
1

我傳遞一個編碼的json數組在ajax GET請求(它是跨域),但我得到一個404,因爲它參數化URL中的數據,並且太長。大JSON請求外部url

在跨域使用JavaScript發送數據到web服務器的更好的方法是什麼? 這是相當少量的數據< 1000個變量,每個變量只有大約50個字符。

+2

你可以發佈你的JS代碼? –

+0

出於好奇,服務器不應該返回414(請求 - URI太長)狀態嗎? –

+0

它是iis所以返回404.15或類似 – ShiftyThomas

回答

1

正常的HTML POST請求的主體沒有限制。

JavaScript post request like a form submit

+2

後是解決方案。而作爲跨域請求並不妨礙您使用它! –

+0

@Paul C如何在上述問題中使用該函數處理響應? webservice會返回一個JSON字符串。 – ShiftyThomas

+0

很好的問題。我不知道如何,但這個討論似乎相關。 http://stackoverflow.com/questions/374644/how-do-i-capture-response-of-form-submit或者你可以回到你開始的地方,並批量發送數據直到完成。 –

0

請使用POST方法而不是GET方法.... 在你的Ajax嘗試JSONP因爲你是訪問與呼叫跨域回function.For更多有關JSONP看到該鏈接: - http://www.cypressnorth.com/blog/programming/cross-domain-ajax-request-with-json-response-for-iefirefoxchrome-safari-jquery/

http://json-p.org/

您所需要的最重要的事情是,你正在使用做捲曲必須設置一些標題爲允許HTTP到HTTPS連接的服務器端頁面。這是下面....

header("Access-Control-Allow-Origin: your https url"); 
header("Access-Control-Allow-Methods: POST, GET"); 
header("Access-Control-Max-Age: 1728000"); 

header("Access-Control-Allow-Headers: Content-Type, Connection, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control"); 
header("Connection: close"); 
+0

我試過這個,但無法讓它起作用,我還必須允許origin *作爲後期URL可以是任何東西。代碼不駐留在服務器上,所以我不能使用curl發佈,如果我參數化數據,我也會得到與jsonp相同的問題,因爲我受限於url大小。 – ShiftyThomas