我试图从另一个网站提取受密码保护的xml提要,但出现以下错误:


  “未捕获的SyntaxError:意外的令牌

我通过添加回调函数修复了以前遇到的原始访问错误,但现在却遇到了这个未捕获的语法错误。

我的代码是:

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


当我检查错误时,我只能看到Feed的位置被“拒绝”:screen shot of error

任何想法为什么这不起作用?我是否需要向Feed提供商提出要求?还是我的代码中缺少/不正确的东西?

最佳答案

您尝试加载xml并使用dataType: 'jsonp'。 jQuery无法处理响应,因为您告诉$.ajax函数将响应用作JSONP。因此,响应<的第一个字符是意外的。

请改用dataType: 'xml'

denied似乎也来自错误的登录。您确定usernamepassword选项对您有用吗?用这种方式我遇到很多问题。我希望将您的登录名更改为使用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'));
    }
});

关于javascript - 向外部供稿调用添加回调时出现“Uncaught SyntaxError:意外 token <”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39486290/

10-12 06:35