Angular http在Phone gap中返回错误,但在浏览器中成功
Angular http returning error in Phone gap but success in browser
我正在Angular JS中发出HTTP请求。
这在浏览器中运行良好,并成功返回数据。但是,当我在设备上测试Phonegap的使用情况时,它会返回错误。
请求的数据从控制器传递到工厂,下面是我用于发出请求的代码示例。
HTML
<ul>
<li ng-repeat="story in stories" ng-click="setUser(story.name)">
<img ng-src="{{ story.img }}" width="120" height="108" />
<div>
<h2>{{ story.name }}'s Story</h2>
<p>{{ story.title }}</p>
</div>
</li>
</ul>
此HTML调用ng-click
上的函数setUser(story.name)
,该函数在ng repeat中传递用户的当前名称。
控制器
$scope.setUser = function (story) {
$scope.chosenStory = story;
dataFactory.setUser($scope.chosenStory); // HTTP call
}
上面的控制器从HTML的ng-click="setUser(story.name)"
中获取值,并将其发送到factory
以进行HTTP请求。
工厂
setUser : function (val) {
window.alert(val);
var username = val;
window.alert(val);
$http.get('./js/json/scenarios/' + username + '.json')
.success(function (data) {
window.localStorage.setItem("users", JSON.stringify(data));
$location.path('/story');
})
.error(function (data, status) {
window.alert(val);
window.alert(data);
window.alert(status);
});
},
在谷歌的控制台中,它记录来自HTTP请求的成功内容。然而,当我在设备上测试Phonegap时,它总是返回HTTP请求的错误内容。例如,它总是从HTTP请求的错误函数返回window.alert。
我做错了什么/没做错什么?提前谢谢。
我敢肯定99.9%这是因为跨域ajax加载。尝试按此处建议启用Access Control Allow Origin如何在AngularJs中启用CORS或按此处建议为应用程序的跨域启用白名单Phonegap Javascript发送跨域ajax请求
最终,如果什么都不起作用,并且您控制了服务,您可以尝试更改响应标头,但很可能其中一个会为您服务。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 尽管链接成功并已成功下载,但未找到NPM模块
- 有时数据是't显示在浏览器中
- 使图像在单击时展开到不大于浏览器
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- 不同浏览器中的空白字符正则表达式行为
- 在Windows 10中自动执行例行程序(主要与浏览器交互)
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何临时暂停浏览器渲染,然后恢复整个页面
- AJAX 调用在获得响应并成功执行时会冻结浏览器一段时间
- Angular http在Phone gap中返回错误,但在浏览器中成功
- 浏览器如何确定哪些控件是“;“成功”;对于多表单数据Postback
- 为什么Node fs.writeFile()方法成功,但随后会向浏览器发送一个空文件
- 浏览器渲染是否有成功的希望
- Angularjs$http获取失败,但在邮递员和浏览器中请求成功
- Ajax发布成功(显示在浏览器中),但$_post中没有数据
- 有人能够使用CSS3在Chrome浏览器中成功地以横向模式打印吗
- 在ajax调用成功后,如何关闭浏览器中当前打开的选项卡