AngularJS http.jsonp 请求多大岁数和.success 函数不工作

发布时间: 2017/4/16 3:07:19
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我的客户端应用程序是 angularJS 应用程序。服务器由 Laravel 5。

在客户端,我进行 jsonp CORS 请求︰

$http.jsonp("http://server.com/api?callback=JSON_CALLBACK")

laravel 服务器,返回 json 数据︰

return Response()->json($query);

然而,当试着

$http.jsonp("http://server.com/api?callback=JSON_CALLBACK")
.then(function(response){
    alert('success');
});

$http.jsonp("http://server.com/api?callback=JSON_CALLBACK")
.success(function(response){
    alert('success');
});

这两种状态是 200 OK 。但没有警报会出现。我试着

$http.jsonp("http://server.com/api?callback=JSON_CALLBACK")
.then(function(response){
    alert('success');
},function(error){
    alert('fail');
});

结果是一种状态的 200 OK 但警报是"失败"!如何解决这个问题?谢谢你 !

解决方法 1:

角的 $http.jsonp 转换请求查询字符串参数从 callback=JSON_CALLBACKcallback=angular.callbacks._0

在中的控制器 Laravel ,您需要将前缀添加到您的响应字符串。

return $request->input('callback')."(".$query.")";

然后,角应用程序将确认此响应并将传递给 .then.success 函数。

官方微信
官方QQ群
31647020