2016-09-14 16 views
1

我想拉其他網站密碼保護XML feed,但這次我收到以下錯誤:「未捕獲的SyntaxError:意外的標記<」添加回調時,外部進電話

"Uncaught SyntaxError: Unexpected token <"

我固定原始訪問錯誤,我以前通過添加回調函數獲得,但現在我得到這個未捕獲的語法錯誤。

我的代碼是:

$.ajax({ 
    url: 'http://xxx.php?&callback=?', 
    dataType: 'jsonp', 
    type: 'POST', 
    username: 'xxxxx', 
    password: 'xxxxx', 
    crossDomain : true, 
    xhrFields: { 
     withCredentials: true 
    } 
}); 

當我檢查我可以看到錯誤消息「拒絕」,其中進料應該是:screen shot of error

任何想法,爲什麼這是不工作?我是否需要向Feed提供商提出要求?或者在我的代碼中有缺失/不正確的地方?

+0

出人意料的是,JSONP不是XML ;-) –

回答

0

您試圖加載一個xml並使用dataType: 'jsonp'。 jQuery無法處理響應,因爲您告訴$.ajax函數使用的響應爲JSONP。所以迴應<的第一個字符是意想不到的。

改爲使用dataType: 'xml'

denied似乎也來自一個錯誤的登錄。你確定usernamepassword選項適合你嗎?我用這種方法得到了很多問題。我會pefer改變你的登錄使用beforeSend,像這樣:

$.ajax({ 
    url: 'http://xxx.php?&callback=?', 
    dataType: 'xml', 
    type: 'POST', 
    crossDomain : true, 
    xhrFields: { 
     withCredentials: true 
    }, 
    beforeSend: function (xhr) { 
     xhr.setRequestHeader('Authorization', 'Basic ' + btoa('username:password')); 
    } 
}); 
+0

你好,非常感謝你發表評論。我按照建議進行了更改,但是現在我又遇到另一個訪問控制檢查錯誤:「XMLHttpRequest無法加載http://www.xxx.php。對預檢請求的響應未通過訪問控制檢查:否'Access-Control- Allow-Origin'標題出現在請求的資源上,因此Origin不允許訪問,響應的HTTP狀態碼爲405。 – JWhy

+0

聽起來像'xxx.php'下的資源沒有設置'CORS'頭文件。你確定這是一個公共API,可以通過AJAX訪問嗎?如果你想通過AJAX使用它們,資源需要有這些頭文件。否則,由於安全原因,瀏覽器會阻止處理。聯繫資源的所有者。 @JWhy – eisbehr

相關問題