gpt4 book ai didi

javascript - Phone gap 中的 Angular http 返回错误,但在浏览器中成功

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:07:48 33 4
gpt4 key购买 nike

我正在 Angular JS 中发出 HTTP 请求。

这在浏览器 中运行良好,并成功 返回数据。但是,当我在设备上测试 Phonegap 用法时,它会返回一个错误

请求的数据从 Controller 传递到工厂,下面是我用来发出请求的代码示例。

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 中传入用户的当前名称。

Controller

$scope.setUser = function (story) {
$scope.chosenStory = story;
dataFactory.setUser($scope.chosenStory); // HTTP call
}

上面的 Controller 从 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);
});
},

在 Google 的控制台中,它会记录来自 HTTP 请求的成功内容。但是,当我在Phonegap的设备上测试时,它总是返回HTTP请求的错误内容。例如。它总是从 HTTP 请求的错误函数返回 window.alert。

我做错了什么/没做什么?提前致谢。

最佳答案

我 99.9% 确定这是因为跨域 ajax 加载。尝试按照此处的建议启用 Access-Control-Allow-Origin How to enable CORS in AngularJs或尝试按照此处的建议为您的应用启用跨域白名单 Phonegap-Javascript sending cross-domain ajax request

最终,如果没有任何效果并且您控制了服务,您可以尝试更改响应 header ,但其中一个很可能会为您成功。

关于javascript - Phone gap 中的 Angular http 返回错误,但在浏览器中成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28604466/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com