簡體   English   中英

在ajax GET方法中未調用成功函數

[英]Success function is not getting invoked in ajax GET method

在這段代碼中,我在success函數中遇到了一個問題。 我嘗試了很多,但這將導致error功能。 #action-button調用JavaScript方法。

<button id="action-button">Click me to load info!</button>
<div id="info"></div>
<small>
    Demo created by <a href="https://twitter.com">Twitter</a>
</small>
$('#action-button').click(function() {
    $.ajax({
        url: 'sampleurl',
        data: { format: 'json' },
        error: function() {
            $('#info').html('<p>An error has occurred</p>');
        },
        dataType: 'jsonp',
        success: function(data) {
            $('#info').html('<p>Successd</p>');
        },
        type: 'GET'
    });
});

如果要將json發送到服務器,請嘗試添加cubeentType:application / json

您還期望響應為jsonp內容類型嗎? 不匹配也可能是問題所在。

正如我在上面的評論中提到的那樣,由於XSS保護 ,AJAX查詢被阻止了。

在IE中運行提供的jsFiddle(並在error()回調中放置一個斷點)會產生錯誤:

拒絕訪問

在Firefox中運行它會產生以下錯誤:

跨域請求被阻止:“相同源策略”不允許讀取位於http:// 0daf70fe0a6244fe的遠程資源...可以通過將資源移至同一域或啟用CORS來解決此問題。

您必須在http:// sampleURL的API調用中添加適當的Access-Control-Allow-Origin標頭。

如果在ajax調用過程中發生任何問題,例如錯誤的URL或服務器上的錯誤,將不會觸發success功能。 如果一切正常,HTTP狀態將為200 OK ,因此將觸發成功事件。 另外,您的選項中的dataType: 'jsonp'與發布數據不匹配。 這可能是一個可能的問題。 您可以在Firebug中檢查錯誤,然后將其發布以獲得更好的幫助。

暫無
暫無

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

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