为啥这个 Angular 脚本无法检索 Laravel 4 生成的 JSON?
Posted
技术标签:
【中文标题】为啥这个 Angular 脚本无法检索 Laravel 4 生成的 JSON?【英文标题】:Why this Angular script is unable to retrieve JSON generated by Laravel 4?为什么这个 Angular 脚本无法检索 Laravel 4 生成的 JSON? 【发布时间】:2013-11-22 00:25:33 【问题描述】:AngularJS
$http(
method: 'GET',
url: '//www.ign-design.net/users'
).success(function (data, status, headers, config)
$scope.user.username = data.name;
).error(function (data, status, headers, config)
console.log(data);
);
Laravel
Route::get('users', function()
return Response::json(array('name' => 'Anil', 'yas' => 25));
);
问题是,当我将//echo.jsontest.com/name/Anil/yas/25
添加为$http URL
时,脚本运行良好。但是,然后我添加 //www.ign-design.net/users
(由 Laravel 使用上面的代码生成),它不起作用。它转到.error
和console.log
输出:""
我不知道怎么了。为什么我的 Laravel 的 Response::json()
不能像 jsontest.com 网站那样满足 AngularJS?花了大约 2 个小时试图弄清楚 - 没有运气。
附言。可能是标题问题 - 但我也尝试使用纯 php 输出 JSON 数据并自己设置标题。也没用。
【问题讨论】:
在浏览器控制台的网络选项卡中检查请求本身并查看它的状态,如果 url 是您所期望的,是否返回数据等 您也使用绝对路径但没有http://
尝试添加
@charlietfl 我做到了。添加 http:// 并不能解决问题,在过去的 2 个小时里,我一直在尝试查看他们的响应标头和我的响应标头之间的差异。不走运,这就是我在 SO 上问它的原因。
那么控制台会告诉你关于请求的什么信息?状态和响应数据
@charlietfl 两者相似。正确的标题,正确的内容类型,但我的响应不被视为我看到的 JSON 响应。您可以打开您的开发工具并向我在上面发布的两个地址发出请求,然后自己查看整个内容。 :)
【参考方案1】:
您似乎遇到了跨域问题。要么将你的 Angular 代码移动到同一个域,要么让你的 Laravel 代码了解如何响应跨域调用。
有关详细信息,请参阅:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS。
【讨论】:
以上是关于为啥这个 Angular 脚本无法检索 Laravel 4 生成的 JSON?的主要内容,如果未能解决你的问题,请参考以下文章
为啥在尝试使用 Angular 检索数据库信息时出现错误 415?