簡體   English   中英

jQuery ajax跨域請求

[英]jQuery ajax cross-domain request

我試圖從我的本地環境中使用jQuery發出ajax請求。

$.ajax({
        url: requestURL,
        dataType: "json",
        timeout: 120000,
        success: function(data){
            // do something

        },
        error: function(XMLHttpRequest, textStatus, errorThrown){
            console.log("Instants.loadGame: error loading games: error text: " + textStatus + "; error thrown: " + errorThrown);
        }
    });

我試過使用dataType json和jsonp(因為其他人似乎都解決了此問題),但是我都遇到了錯誤。 使用dataType json時,錯誤響應具有textStatus =“ error”並且errorThrown為空。 使用dataType jsonp時,錯誤響應包含textStatus =“ parsererror”和errorThrown =“未調用jQuery19002007321439859855_1361446807440”。

我知道此代碼在與請求URL相同的域上運行時可以工作,因此我只能認為是因為我在本地環境中執行此操作。 我將cross-domain.xml設置為允許所有操作。 我正在使用jQuery 1.9.0。

有人有什么想法嗎? 我一直在網上看很多東西,但是沒有一個解決方案可以幫助其他人為我工作。

謝謝,希瑟

當您收到類似“未調用jQuery19002007321439439855_1361446807440”的錯誤時,是因為它不是正確的jsonp響應。 使用jsonp時,服務器必須是JavaScript(實際腳本),並且該腳本需要調用作為url的一部分提供的函數(在這種情況下,該函數名為jQuery19002007321439859855855_1361446807440,jQuery映射到您提供的成功處理程序。

最可能的原因是服務器返回了原始的json數據,但無法正常工作。 該數據需要傳遞到腳本。 所以對服務器的請求應該返回類似

var data = {"foo":1}; //your data here
jQuery19002007321439859855_1361446807440(data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM