簡體   English   中英

jQuery.get()返回錯誤

[英]jQuery.get() returning error

我是javascript / jquery新手。

我具有以下基本代碼,並且不斷收到“錯誤”警報消息:

var jqxhr = $.get('my_url',
                function(data) {
                alert("success");
            })

            .success(function() {
                alert("second success");
            })
            .error(function() {
                alert("error");
            })
            .complete(function() {
                alert("complete");
            });

請注意,如果我將my_url復制並粘貼到瀏覽器中, my_url得到一個xml文件。 我究竟做錯了什么? 我如何獲得詳細的錯誤描述?

您是否在$ .ajaxSettings()函數中將響應類型更改為'text / xml'?

如果您期望“ text / html”作為響應類型並獲取“ text / xml”,則可能會導致問題。

另外,如果您使用Fiddler ,則可以很好地了解響應中的實際情況。

您的錯誤:

XMLHttpRequest cannot load 'my_url'. Origin null is not allowed by Access-Control-Allow-Origin.

表示您有相同的來源問題。 您不能對與主機網頁的域不同的域進行ajax調用。

有關同一起源策略和同一起源的更多信息,請參見此MDN參考

一種變通方法是使用JSONP (該腳本使用不受同一原始策略約束的腳本標簽),但這需要更改服務器以支持此操作的JSONP。

實際上,只有三種方法可以解決跨域問題。

  1. 使遠程服務器支持CORS
  2. 用戶代理腳本或代理服務,例如YQL
  3. 使用不支持跨域請求的jsonp數據類型。 此解決方案要求服務器返回JSONP而不是XML

暫無
暫無

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

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