我是angularJs的新手,在我的ionic应用程序中,我尝试发送一个json到我的服务器,这是控制器:
`enter code here`.controller('DashCtrl', ['$scope','$http',function($scope, $http) {
$scope.formData = {};
$scope.sendForm = function(){
$http({
method : 'POST',
url : 'http://www.---.org/appForm.php',
data : JSON.stringify($scope.formData), // pass in data as strings
headers : {'Access-Control-Allow-Origin':'*'}
})
.success(function(data) {
console.log(data);
if (!data.success) {
// if not successful, bind errors to error variables
$scope.errorName = data.errors.name;
$scope.errorSuperhero = data.errors.superheroAlias;
} else {
// if successful, bind success message to message
$scope.message = data.message;
}
});
};
但当我发送帖子时,控制台显示以下错误消息:
-Error无法加载资源:源htt..Access-Control-Allow-Origin不允许。(appForm.php,第0行)
-Error XMLHttpRequest无法加载htt..Access-Control-Allow-Origin不允许源http://localhost:8100。(localhost,第0行)
我尝试将此.htaccess放入我的主文件夹中:
Header add Access-Control-Allow-Origin "*“Header add Access-Control-Allow-Headers "origin,x-requested with,content-type”Header add Access-Control-Allow-Methods "PUT,GET,POST,DELETE,OPTIONS“
但这又增加了一个错误:
加载资源的-Failed :服务器响应状态为500 (内部服务器错误)。
我要发疯了!有谁知道吗?!非常感谢大家的关注
发布于 2015-02-05 23:35:45
您可以将服务代理添加到ionic.project文件。
{
"name": "appname",
"email": "",
"app_id": "",
"proxies": [
{
"path": "/v1",
"proxyUrl": "https://api.instagram.com/v1"
}
]
}发布于 2014-10-05 03:17:36
在我的例子中,打开命令行get到chrome目录:
谷歌C:\程序文件(X86)\
\Chrome\应用程序
类型:chrome.exe --disable-web-security
在浏览器中打开http://localhost:8100,你的问题就会迎刃而解
发布于 2015-06-26 22:04:46
在开发阶段,跨源是我们需要在离子框架中显式处理的问题。
来自ionic team的Here is a good blog page,其中包含问题的完整细节
在更高的层次上:
步骤1:将代理详细信息添加到ionic.project
{
"name": "proxy-example",
"app_id": "",
"proxies": [
{
"path": "/api",
"proxyUrl": "http://cors.api.com/api"
}
]
}步骤2:作为一个好的实践,添加角度常量来管理外部端点-这不是强制的
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])
.constant('ApiEndpoint', {
url: 'http://localhost:8100/api'
})第三步:重启离子服务。如果不重新启动ionic.project,更改将不会生效。
https://stackoverflow.com/questions/26165879
复制相似问题