首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角JSONP调用WordPress JSONP

角JSONP调用WordPress JSONP
EN

Stack Overflow用户
提问于 2014-10-27 23:03:15
回答 2查看 1.1K关注 0票数 0

我不完全确定发生了什么,因为我仍在试图计算跨域javascript调用,但我正在从WordPress站点调用一些JSON (即使用WordPress JSON插件)。由于它来自一个本地站点(我正在开发一个使用Ionic/Angular的移动应用程序),所以我遇到了一些跨域访问问题。所以,我正在考虑使用JSONP。

我已经成功地调用并返回了信息,但是我似乎无法对返回的数据做任何事情。

我的电话是这样的:

代码语言:javascript
复制
$http.jsonp('http://heavymetalhamilton.ca/wp-json/hmh-api/shows?_jsonp&callback=JSON_CALLBACK')
  .success(function(data) {
    console.log(data);
  });

但是,没有任何记录。我可以看到$http.jsonp调用正在返回数据(我可以在developer工具中看到,如下所示:

代码语言:javascript
复制
/**/([{"ID":30,"post_date":"2014-09-25 18:33:15","post_date_gmt":"2014-09-25 
...
)

我看到返回的数据有一些包装,但我不知道如何处理这些数据。

有什么帮助吗?

编辑:让CodePen中发生的事情发生

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-28 12:24:45

所以,我遇到的最大问题(有几个)是我的jsonp电话。没有一个“成功”的承诺附在上面。Jsonp触发一个定义为回调的函数--在本例中,调用:

回调

一旦返回,调用mytest()的全局函数。因此,为了在我的控制器中获得一个全局函数,所以我可以使用$scope,我的最终结果是:

代码语言:javascript
复制
$http.jsonp('http://heavymetalhamilton.ca/wp-json/hmh-api/shows?_jsonp=mytest&callback=JSON_CALLBACK');

window.mytest = function(data) {
  $scope.shows = data;
};

我返回的内容类型也有问题(如@Miszy所述)。我必须指定Content设置为application/javascript.以前,它返回的是application/json。

在我的例子中,我编写了一些自定义功能来返回特定的内容,因此我添加了以下内容:

代码语言:javascript
复制
if ($_GET['_jsonp']) {
   $response->header( 'Content-Type', 'application/javascript; charset=' . get_option( 'blog_charset' ), true );
}

希望这能帮到路上的人!

票数 0
EN

Stack Overflow用户

发布于 2014-10-27 23:06:04

数据返回为JSON对象。请尝试使用以下格式登录

代码语言:javascript
复制
JSON.stringify(data);

否则,您可以以下列方式查看返回的数据集

代码语言:javascript
复制
console.log(data.ID + ', ' + data.post_date);

等等..。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26598306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档