我正在使用angularjs'$ http服务将数据发布到我的API。它工作得很好..直到我添加并等于数据内容的符号(例子中的JSONRequest)
var request = {
'method': 'POST',
'url': API_URL + apiActionName,
'data': JSONRequest,
'withCredentials': true,
};
$http(request).
success(function(data, status, headers, config) {
// handle success
}).
error(function(data, status, headers, config) {
// handle error
}
这适用于数据包含以下JSONRequest
{
'text':'this is some text'
}
但是当数据包含此
时{
'text':'this is = some text'
}
请求被转义,服务器无法对POST做任何事情!它似乎适用于所有其他角色。
任何帮助将不胜感激!感谢
答案 0 :(得分:1)
我总是使用JSON.Stringify()
来获取POST有效负载。
答案 1 :(得分:1)
它与URI编码有关。正在被发送到较低级别AJAX API的字符串不是uri编码的。这意味着当它在帖子中看到=符号时,它正在解析它,假设是uri编码。
由于JSONRequest最初是在var请求上面的行上定义的,因此可能没有回复此问题的所有信息。对于那个很抱歉。它的定义如下:
var JSONRequest = {
'JSON': requestObject;
}
其中requestObject是
{
'text':'this is = some text'
}
我最终编码了JSON请求的URI,如下所示
var JSONRequest = 'JSON=' + encodeURIComponent(JSON.stringify(requestObject));
这解决了问题并使我的API调用对HTTP协议更加健壮。
感谢所有帮助!!