javascript - 未捕获的语法错误 : Unexpected token < using Jsonp

标签 javascript jquery

问题:

Uncaught SyntaxError: Unexpected token <

我尝试了什么

请求:Jsonp
响应:返回 XML 响应 200。
跨域请求这就是为什么使用数据类型:jsonp

脚本代码:

$.ajax({
    url: "some url",
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    type: "POST", /* or type:"GET" or type:"PUT" */
    data:myusername,
    crossDomain: true, 
    dataType: 'jsonp',
    data: {
        'name':myusername
    },
    success: function (result) {
        console.log(result);
    },
    error: function () {
        console.log("error");
    }
    //});
});

这里 AJAX 响应是 XML。
但有人可以告诉我如何解决意外的 token 问题。
响应是 XML。

我发现的解决方案是第三方请求

 var urljson='cross-damin-url';


   var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + 
     encodeURIComponent('select * from xml where url="' + urljson + '"') + 
   '&format=xml&callback=?';


    $.getJSON(yql, function (data) {
      console.log(data.results[0]);
       });

欢迎任何建议。

最佳答案

问题出在“dataType: 'jsonp'”行。以这种方式设置,ajax 调用期望结果是 jsonp(在回调中包装为参数的 json 对象...),如果您正在进行跨域调用(由于 CORS),这非常有用。您必须设置“dataType:'xml'”

编辑 考虑到你必须进行 CORS 调用,你必须更改 api 的输出,至少做出类似

callbackName({value:'<your><xml>...</xml></your>'})

并从字符串中解析 xml “callbackName”是页面中声明的函数或方法的名称,该函数或方法进行 ajax 调用,并将解析来自 api 的 json...例如:

function callbackName(result) {
  console.log($.parseXML(result.value)); 
}

关于javascript - 未捕获的语法错误 : Unexpected token < using Jsonp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46565293/

相关文章:

javascript - 如何构建大型 JavaScript 应用程序?

javascript - 将 Advance Join() 与 VueJS 结合使用

javascript - 当输入字段留空时,AngularJs 的 onblur 无法正常工作

jquery - 获取元素内的文本(不包括后代)

javascript - 如何在运行 jquery 函数后使用变量

javascript - 不能在 javascript 中使用 "download"作为函数名

javascript - 如何使用 Yargs 实现多个子命令?

javascript - 在菜单中选择多个 li 类

jquery - @grid-float-断点: @screen-desktop; not working in bootstrap 3

jquery - 同时滑动两个div