php file_get_contents("php://input") 添加引号
php file_get_contents("php://input") adding quotes
我在使用 POST 和 php REST 服务器时遇到问题。
file_get_contents("php://input")
正在添加额外的引号。
这导致 json_decode(file_get_contents("php://input"),true)
失败
即
我正在 post 字符串化 JSON
'{"someValue":0,"someOtherValue":1}'
PHP:
var_dump(file_get_contents("php://input"))
returns
string(173) "'{ "someValue" : 0, "someOtherValue" : "1"}'"
我的PHP版本是5.3.10
致postjson,我目前使用的是webstorm REST Client工具
Headers:
Accept: */*
Request Body:
Text: '{ "someValue" : 0, "someOtherValue" : "1"}'
我尝试从 webstorm 中的字符串中删除外部引号,它会工作 I.E. { "someValue" : 0, "someOtherValue" : "1"}
最初使用 angular ngResource
在 angular 应用程序中遇到错误后,我开始在 webstorm 中进行调试
控制器
angular
.module('app.bookings')
.controller('BookAPuntController', BookAPuntController);
BookAPuntController.$inject(BookingServices);
function BookAPuntController(BookingServices) {
var data = {
someValue:0,
someOtherValue:1
};
BookingServices.save(JSON.stringify(data));
};
booking.dataservice.js
(function () {
'use strict';
angular
.module('app.data')
.factory('BookingServices', BookingServices);
BookingServices.$inject = ['$resource'];
/* @ngInject */
function BookingServices($resource) {
return $resource('rest/booking/:Id/:from/:to', null, {
'get': {method: 'GET', isArray: true},
});
}
})();
'{"someValue":0,"someOtherValue":1}'; // IS A STRING...
{"someValue":0,"someOtherValue":1}; // IS NOT A STRING...
如果您传入第一个变体;你应该找回像 PHP 这样巧妙地计算并返回的字符串...
string(173) "'{ "someValue" : 0, "someOtherValue" : "1"}'"
当你传入
的结果时
var jsonData = JSON.stringify(data);
您可能已经解决了您的问题,您自己....
原来我问的是完全错误的问题
我的 angular 应用程序由于 CORS 而失败,它是 POST。我是 运行 本地主机上的应用程序,但正在查询远程 REST php 服务器。当我 运行 应用程序时,由于 CORS,正在发送方法 OPTIONS 请求。服务器不知道如何响应所以一切都失败了。
在 webstorm 中调试是人为引入了原题中看到的错误。
Why am I getting an OPTIONS request instead of a GET request?
https://serverfault.com/questions/231766/returning-200-ok-in-apache-on-http-options-requests
我在使用 POST 和 php REST 服务器时遇到问题。
file_get_contents("php://input")
正在添加额外的引号。
这导致 json_decode(file_get_contents("php://input"),true)
失败
即 我正在 post 字符串化 JSON
'{"someValue":0,"someOtherValue":1}'
PHP:
var_dump(file_get_contents("php://input"))
returns
string(173) "'{ "someValue" : 0, "someOtherValue" : "1"}'"
我的PHP版本是5.3.10
致postjson,我目前使用的是webstorm REST Client工具
Headers:
Accept: */*
Request Body:
Text: '{ "someValue" : 0, "someOtherValue" : "1"}'
我尝试从 webstorm 中的字符串中删除外部引号,它会工作 I.E. { "someValue" : 0, "someOtherValue" : "1"}
最初使用 angular ngResource
在 angular 应用程序中遇到错误后,我开始在 webstorm 中进行调试控制器
angular
.module('app.bookings')
.controller('BookAPuntController', BookAPuntController);
BookAPuntController.$inject(BookingServices);
function BookAPuntController(BookingServices) {
var data = {
someValue:0,
someOtherValue:1
};
BookingServices.save(JSON.stringify(data));
};
booking.dataservice.js
(function () {
'use strict';
angular
.module('app.data')
.factory('BookingServices', BookingServices);
BookingServices.$inject = ['$resource'];
/* @ngInject */
function BookingServices($resource) {
return $resource('rest/booking/:Id/:from/:to', null, {
'get': {method: 'GET', isArray: true},
});
}
})();
'{"someValue":0,"someOtherValue":1}'; // IS A STRING...
{"someValue":0,"someOtherValue":1}; // IS NOT A STRING...
如果您传入第一个变体;你应该找回像 PHP 这样巧妙地计算并返回的字符串...
string(173) "'{ "someValue" : 0, "someOtherValue" : "1"}'"
当你传入
的结果时var jsonData = JSON.stringify(data);
您可能已经解决了您的问题,您自己....
原来我问的是完全错误的问题
我的 angular 应用程序由于 CORS 而失败,它是 POST。我是 运行 本地主机上的应用程序,但正在查询远程 REST php 服务器。当我 运行 应用程序时,由于 CORS,正在发送方法 OPTIONS 请求。服务器不知道如何响应所以一切都失败了。
在 webstorm 中调试是人为引入了原题中看到的错误。
Why am I getting an OPTIONS request instead of a GET request?
https://serverfault.com/questions/231766/returning-200-ok-in-apache-on-http-options-requests