使用 PrestaShop 更新 (PUT) 一个 JSON 对象
Update (PUT) a JSON object with PrestaShop
我正在尝试更新JSON对象(例如:客户)。但是,我有以下错误:
"网络错误:不允许 405 方法 - http://prestashop/api/..."
这是我的代码(索引.js):
var testWebService = angular.module('testWebService', []);
testWebService.controller('testWebServiceCtrl', function ($scope, $http) {
var $baseDir = "http://prestashop/api";
var $objectDir = "customers";
var $idObjectDir = "1";
var $keyDir = "F517VWPRREG7TA25DEY8UIZT8V79E5OV";
var $urlDir = $baseDir + "/" + $objectDir + "/" + $idObjectDir + "?ws_key=" + $keyDir + "&output_format=JSON";
// TEST DE LA METHODE PUT SUR L ID D UN CUSTOMER
$.ajax({
type: "PUT",
url: $urlDir,
dataType: "json",
async: false,
contentType: "application/json; charset=utf-8",
data: {"id": "93"},
crossDomain: true,
success: function () {
console.log("Ok PUT");
},
error: function() {
console.log("Erreur PUT");
}
});
});
之前,我尝试获取对象的 id(相同:客户),并且我用几乎类似的方法成功了。我准确地说,我在高级设置/网络服务中授予了有关"客户"的权利(对于方法GET,PUT,POST...
提前感谢您的帮助,我尝试了很多事情,但成功了。
PS:如果您对我的代码有任何"清理"它的建议,您会很高兴。
我的网络服务 JSON:
{"customer":{"id":1,"id_default_group":"3","id_lang":"1","newsletter_date_add":"2013-12-13 08:19:15","ip_registration_newsletter":"","last_passwd_gen":"2015-06-08 03:38:27","secure_key":"7036cdf99ea12125ad1b3789f298f686","deleted":"0","passwd":"2e372235eb5213bc004ce72bcfef16a2","lastname":"DOE","firstname":"John","email":"pub@prestashop.com","id_gender":"1","birthday":"1970-01-15","newsletter":"1","optin":"1","website":"","company":"","siret":"","ape":"","outstanding_allow_amount":"0.000000","show_public_prices":"0","id_risk":"0","max_payment_days":"0","active":"1","note":"","is_guest":"0","id_shop":"1","id_shop_group":"1","date_add":"2015-06-08 09:38:27","date_upd":"2015-06-08 09:38:27","associations":{"groups":[{"id":"3"}]}}}
编辑:当我尝试使用GET方法时,我做到了:
$.ajax({
type: "GET",
url: $urlDir,
dataType: "json",
async: false,
success: function (data) {
$scope.customer1 = data;
console.log("Ok GET");
console.log(data);
},
error: function() {
console.log("Erreur GET");
}
});
读取 http 协议的状态代码定义,尝试将以下属性添加到 ajax 请求中:
$.ajax({
type: "PUT",
...
beforeSend: function (xhr) {
xhr.setRequestHeader("Allow", "GET, HEAD, PUT, DELETE");
},
...
});
PS:如果您的服务器上禁用了 CORS,请查看此答案并设置标头以允许您的服务器访问来自不同来源的请求。
相关文章:
- 根据id将json数组组合为一个json数组
- 处理一个JSON文件;完全相同的副本不是
- 使用来自不同异步函数的响应创建一个json对象
- 想要使用Javascript将一个JSON对象拆分为多个JSON对象
- JSON:在另一个JSON对象中重用JSON对象
- 我需要迭代一个JSON数组——不知道如何做到——已经搜索过了,但仍然可以'我一点也不知道
- I'我在页面加载时将整个$_SESSION变量放入一个json对象中.虽然这对我有效,但这是一个好的做法吗
- 创建一个 json cookie 数组
- NodeJS应用程序只显示第一个JSON对象.为什么?
- 从另一个JSON对象创建JSON对象
- 用javascript附加一个json文件
- 如何将两个json对象合并为一个json
- 将json作为子文档合并到另一个json中
- 其中一个json.dumps值为null
- ExtJS DataView只显示最后一个JSON元素
- 如何在javascript中为每个JSON对象添加一个JSON数组
- 从URL获取一个JSON文件并显示
- 我有一个json文件,当我点击按钮时
- 使用 javascript 为 c3js 创建一个 json 对象
- 从 javascript 打开一个 JSON 文件