AngularJS http.jsonp请求.then和.success函数不起作用
AngularJS http.jsonp request .then and .success functions not work
我的客户端应用程序是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
状态,但警报为"失败"!我该如何解决这个问题?谢谢
JSONP需要服务器端的回调函数"JSON_callback"。或者,您可以使用代理。http://www.whateverorigin.org/
$http.jsonp
将请求查询字符串参数从callback=JSON_CALLBACK
转换为callback=angular.callbacks._0
。
在Laravel中的控制器中,您需要将前缀添加到响应字符串中。
return $request->input('callback')."(".$query.")";
然后,角度应用程序将确认该响应并传递给.then
或.success
功能。
相关文章:
- AngularJs.调用$http.success中的jQuery函数
- AngularJS http.jsonp请求.then和.success函数不起作用
- fetch()不调用其Success和Error回调函数(backbone.js)
- 在 Success 函数中检索多个值并将它们存储到 javascript 变量中
- 为什么我的 javascript 函数在 ajax.success 之后不调用
- Jquery $.ajax 获取响应与将“this”对象嵌套传递到“success”回调函数冲突
- 为什么我可以通过添加 .success 来执行 $http 函数
- 无法在控制器中测试 .success 函数
- 对返回promise的函数使用.success时,Undefined不是函数
- 返回Jquery ajax数据,但未调用success函数
- 如何将参数从.success函数传递给Javascript.done函数
- 使用ajax success:function(data)对文档准备jquery函数
- http.post().success()将变量传递给success()匿名函数作用域问题
- 从另一个web服务的Success函数调用c# web服务
- Ajax对Rest服务的调用没有成功调用Ajax中的success函数
- Google Apps Script Success Handler在函数完全执行之前运行
- Javascript http get success函数捕获错误响应
- Angular工厂.success和.error函数
- 从promise.success函数返回数据对象
- 在success函数中设置变量以覆盖ajax调用中的变量