AngularJS 中的 JSONP 请求不像在 jQuery 中那样工作 [英] JSONP request in AngularJS doesn't work like in jQuery

查看:20
本文介绍了AngularJS 中的 JSONP 请求不像在 jQuery 中那样工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用 AngularJS 的 $http 服务请求 Dailymotion API,但它似乎不像在 jQuery 中那样工作.

I would like to request the Dailymotion API with the $http service of AngularJS, but it doesn't seem to work like in jQuery.

var url = 'https://api.dailymotion.com/videos?fields=id,audience,onair&ids=xzttq2_c,xrw2w0';

使用 jQuery 请求

jQuery.ajax({
  type: 'GET',
  url: url,
  dataType: 'jsonp',
  success: function(data) {
    console.log('Success', data);
  },
  error: function(data) {
    console.log('Error', data);
  }
});

结果

使用 jQuery,它工作正常.我不必使用回调.

Result

With jQuery, it's work fine. I don't have to use a callback.

Success 
Object {page: 1, limit: 10, explicit: false, has_more: false, list: Array[2]}

使用 AngularJS 请求

$http({
    method: 'jsonp',
    url: url,
    responseType: "json"
}).
success(function (data) {
    console.log('Success', data);
}).
error(function (data) {
    console.log('Error', data);
});

结果

但是对于 Angularjs,它不能像我预期的那样工作.

Result

But with Angularjs, it doesn't work as I expected.

Uncaught SyntaxError: Unexpected token : 

推荐答案

将此添加到您的网址:&callback=JSON_CALLBACK.

Add this to your url : &callback=JSON_CALLBACK.

工作:http://jsfiddle.net/dqcpa/

来自 jQuery 的 ajax 方法 文档:

From jQuery' ajax method documentation:

"jsonp": 使用 JSONP 加载到 JSON 块中.添加一个额外的?callback=?"到用于指定回调的 URL 末尾.

这篇关于AngularJS 中的 JSONP 请求不像在 jQuery 中那样工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆