i updated on new version on angular + ionic , method processing remote request stopped working , returns 404 response.
request following:
request method:post status code:404 not found (from cache) request headersview source accept:application/json, text/plain, */* content-type:text/plain origin:file:// user-agent:mozilla/5.0 (linux; android 4.4.2; lenovo build/kot49h) applewebkit/537.36 (khtml, gecko) version/4.0 chrome/30.0.0.0 mobile safari/537.36 request payloadview source {,…}
code of method processing remote request following:
// set transfer credentials $http({ method : 'post', url : $scope.remoteurl, data: {img_base64: "/9j/4aaqskz"}, headers: 'application/json', timeout: 10000 // success response }).success(function(data, status, headers, config) { //sucesss } else { //processing error } // error response }).error(function(data, status, headers, config) { // error });
i tried solve using topic:
angularjs $http.post() not send data
and
angular + ionic post request getting 404 not found
but without luck.
server side processing request way:
$inputjson = file_get_contents('php://input'); $input= json_decode( $inputjson, true ); //convert json array
if i'm trying send request using postman or curl seems working.
ionic info:
node version: v0.12.2 cordova cli: 5.0.0 ionic cli version: 1.3.22 xcode version: xcode 6.3.1 build version 6d1002 ios-sim version: not installed ios-deploy version: not installed
angularjs version:
"version": "1.3.13",
how can solve please?
many advice
hum, ran same problem: header suggests has been fetched from cache
... actually, seems has new security policy in new versions of cordova.
here's how solved it:
i installed cordova's whitelist plugin :
cordova plugin add cordova-plugin-whitelist
then, add content policy in index.html
meta tag (using own host or '*' accepting requests) :
<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';">
default-src
used general requests; ws://localhost:35729
host used live-reload in ionic serve
.
script-src
used secure script execution
unsafe-inline
, unsafe-eval
required in order angular work properly.
data: gap: https://ssl.gstatic.com
used on ios.
self
means current host of index.html
file.
you'll have add own in order requests work. don't forget add protocol , port if they're non-standard
you can skip meta tag if don't want it, you'll lot of warnings whitelist plugin.
more info on how configure in the plugin's readme.
then rebuild app, , should work again.
Comments
Post a Comment