我正在尝试向 REST API 发送发布请求。我注意到当我在curl中使用-d选项传递参数时一切正常。例子:
curl "https://mywebsite.com" -d "param1=x" -d "param2=y" -u "3SUHZb0sanKWrQ"
Run Code Online (Sandbox Code Playgroud)
但是,如果将参数作为 json 对象发送并使用 --data-binary,我会从 Api 收到错误(就好像没有收到参数一样)。例子:
curl "https://mywebsite.com" --data-binary $'{ "param1": "x", -d "param2":"y" }' -u "3SUHZb0sanKWrQ"
Run Code Online (Sandbox Code Playgroud)
我认为这两种方法具有相同的行为,但我认为我错了。这两种方法有什么区别?
PS:第二个请求是我在Google Chrome上选择选项时收到的curl请求copy as cURL,因为实际请求是Angular中的$http.post,其数据负载为JSON对象。我可以在 Angular 中做什么来让它工作?
var data = {
"param1": "x",
"param2": "y"
};
$http({
url: "https://mywebsite.com",
method: 'POST',
data: data
}).then(function successCallback(response){
console.log(response);
}, function errorCallback(response){
console.log(response);
});
Run Code Online (Sandbox Code Playgroud) 在javascript中,可以"覆盖"属性或方法Object.prototype.例如:
Object.prototype.toString = function(){
return "some string";
};
Run Code Online (Sandbox Code Playgroud)
如果不仔细使用,它可能会破坏整个应用程序.是否有任何工具,技术或方法可以避免这种情况(例如,某种"严格模式"不允许开发人员覆盖Object的属性)?
如何将 javascript 对象属性设为私有,并且Object.keys()不Object.getOwnPropertyNames()返回该属性?