【问题标题】:Dojo REST calls returning weird errorDojo REST 调用返回奇怪的错误
【发布时间】:2014-04-04 17:39:35
【问题描述】:

我正在使用DOJO 库对BING 提升服务进行Ajax 调用。正在调用 successfully ,出现 200 错误,但返回函数/数据已中断。 我通过调用非 BING 服务对此进行了测试,并且返回的 JSON 数据没有问题。但是当调用 BING 服务时,我得到:

"Uncaught SyntaxError: Unexpected token :"

error 控制台中的错误,指向 BING 服务返回的包含 this data 的工作表。

最终问题:从 dojo 到 REST 服务的 ajax 调用显示了看不见的结果,有没有人遇到过这个问题,或者有解决方案?

Dojo Ajax snippy:

request.get('https://dev.virtualearth.net/REST/v1/Elevation/Polyline?points=-84.44627894973615, 33.79093896172691, -84.43705215072468, 33.80377767236137&heights=sealevel&samples=10&key=BINGKEY', {
    jsonp: 'callback'
}).then(function(returned) {
    console.log('call has completed: ' + returned);
}).error(function(msg) {
    console.log('there was a problem retrieving elevation data: ' + msg);
});

任何帮助都会很棒

【问题讨论】:

    标签: javascript ajax dojo


    【解决方案1】:

    你必须告诉 bing 你正在使用 JSONP

    dojo中的jsonp参数应该映射到你正在调用的api的jsonp回调参数的名称,因为bing映射了它的jsonp。

    前

    request.get('https://dev.virtualearth.net/REST/v1/Elevation/Polyline?points=-84.44627894973615, 33.79093896172691, -84.43705215072468, 33.80377767236137&heights=sealevel&samples=10&key=BINGKEY', {
        jsonp: 'jsonp'
    }).then(function(returned) {
        console.log('call has completed: ' + returned);
    }).error(function(msg) {
        console.log('there was a problem retrieving elevation data: ' + msg);
    });
    

    【讨论】:

    • 我之前尝试过,现在又收到一条更奇怪的消息:请求的资源上不存在“Access-Control-Allow-Origin”标头。 如果有人会在他们的盒子上解决 CORS 问题吗??
    • 如果您实际上在使用dojo/request/script,就像在 tik27 的小提琴中一样,您不应该收到与 CORS 相关的错误,这是您需要用于 JSONP 服务的内容。这就是 JSONP 的重点——它通过脚本注入而不是 XHR 运行以避免跨域限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 2016-03-14
    相关资源
    最近更新 更多