Ionic + Angular发出的POST请求返回状态码404。

14 浏览
0 Comments

Ionic + Angular发出的POST请求返回状态码404。

我刚刚更新了Angular + Ionic的新版本,但处理远程请求的方法停止工作,并始终返回404响应。\n请求如下:\n请求方法:POST\n状态码:404 Not Found(来自缓存)\n请求头:\nAccept: application/json, text/plain, */*\nContent-Type: text/plain\nOrigin: file://\nUser-Agent: Mozilla/5.0 (Linux; Android 4.4.2; Lenovo Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36\n请求载荷:\n{,...}\n处理远程请求的代码如下:\n//设置传输凭据\n$http({\n method: \'POST\',\n url: $scope.remoteUrl,\n data: {img_base64: \"/9j/4AAQSkZ\"},\n headers: \'application/json\',\n timeout: 10000\n //成功响应\n}).success(function(data, status, headers, config) {\n //成功\n}).error(function(data, status, headers, config) {\n //错误\n});\n我尝试使用以下主题解决此问题:\nAngularJs $http.post() does not send data\nAngular + Ionic Post request getting 404 not found\n但是没有成功。\n服务器端处理请求的方式如下:\n$inputJSON = file_get_contents(\'php://input\');\n$input= json_decode( $inputJSON, TRUE ); //将JSON转换为数组\n如果我尝试使用Postman或Curl发送请求,一切似乎都正常工作。\nIonic信息:\nNode版本:v0.12.2\nCordova CLI版本:5.0.0\nIonic CLI版本:1.3.22\nXcode版本:Xcode 6.3.1 Build version 6D1002\nios-sim版本:未安装\nios-deploy版本:未安装\nAngularJS版本:\n\"version\": \"1.3.13\"\n请问我该如何解决这个问题?\n非常感谢任何建议。

0
0 Comments

问题出现的原因是没有正确安装插件并在index.html中配置了CSP,解决方法是先移除插件,然后再重新安装插件。

在Ionic和Angular中进行POST请求时,我遇到了很多困难,但是解决的关键是安装插件、在index.html中配置内容安全策略(CSP),然后再移除插件,再重新安装插件。以下是具体操作步骤:

1. 首先,确保已正确安装所需的插件。可以使用以下命令安装插件:

npm install @ionic-native/http

2. 在index.html文件中配置CSP。找到以下代码段:


将其替换为以下内容:


这将允许应用程序通过HTTP进行连接。

3. 接下来,移除插件并重新安装。在终端中使用以下命令:

ionic cordova plugin remove cordova-plugin-advanced-http
npm uninstall @ionic-native/http

然后,再次使用以下命令安装插件:

ionic cordova plugin add cordova-plugin-advanced-http
npm install @ionic-native/http

这将确保插件正确安装并与应用程序兼容。

通过按照以上步骤操作,应该能够解决Ionic和Angular中进行POST请求时返回状态404的问题。

0
0 Comments

在使用Ionic和Angular进行POST请求时,遇到了返回状态404的问题。经过大量的搜索和尝试,最终找到了解决方法。

问题的原因是由于插件whitelist的存在。为了解决这个问题,我们需要先移除该插件,然后重新安装。

移除插件的命令如下:cordova plugin remove cordova-plugin-whitelist

重新安装插件的命令如下:cordova plugin add cordova-plugin-whitelist

通过这种方式,我成功解决了这个问题,希望对你也有帮助。

0
0 Comments

Ionic + Angular POST请求返回状态404问题的原因可能是新版本的Cordova中的安全策略导致的。解决方法是安装Cordova的白名单插件,并在index.html中添加内容策略作为meta标签。具体的解决步骤如下:

1. 安装Cordova的白名单插件:

cordova plugin add cordova-plugin-whitelist

2. 在index.html中添加内容策略的meta标签,可以使用自己的主机或'*'来接受所有请求:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' yourhost.com ws://localhost:35729 data: gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; media-src *;script-src 'self' localhost:35729 'unsafe-eval' 'unsafe-inline';">

3. 需要根据实际情况添加自己的内容策略,包括协议和端口。如果不添加meta标签,会收到白名单插件的警告。

4. 重新构建应用,问题应该会解决。

这个问题可能是由于使用较新版本的Phonegap Build构建时导致的。在其他设备上应用正常工作,但在某个特定的Android设备上无法正常工作。感谢这位作者的分享,解决了我很多困扰。

如果上述方法不起作用,可以尝试重新安装cordova-plugin-whitelist插件。更多信息可以查看插件的readme文件。还可以参考forum.ionicframework.com上的讨论。

0