Azure 移动服务 API - exports.put 导致阿拉伯语文本损坏
Azure Mobile Service API - exports.put causes Arabic text corruption
我有一个调用 Azure 移动服务 (AMS) API 的客户端功能来更新我的一个 AMS tables:
中的列
azureMobileClient.updateCustomerUser = function (phonenumber, UpdatedJson) {
azureMobileClient.azureMSC.invokeApi("customer", {
parameters: {
phonenumber: phonenumber, jsondata: JSON.stringify(UpdatedJson)
},
method: "put"
}).done(function (results) {
console.log("updated customer json", UpdatedJson);
console.log("updated customer result", results.result);
}, function (error) {
alert(error.message);
});
}
这是我在 Azure 门户上 API 中的 exports.put 代码:
exports.put = function(request, response) {
console.log("customer/put");
var phonenumber = request.query.phonenumber;
var jsondata = request.query.jsondata;
console.log("customer/put phonenumber: " + phonenumber);
console.log("customer/put jsondata: " + jsondata);
console.log("customer/put request.query.jsondata: " + request.query.jsondata);
request.service.tables.getTable('User').where({ phonenumber: phonenumber, usertype: "300" }).read({
success: function(result) {
//Does not exist and nothing to update; return error
if (result.length === 0) {
console.log("customer/put: item does not exist");
response.send(statusCodes.NOT_FOUND, {message: "customer/put: item does not exist and not thing is updated"});
}
//Exists; update it
else {
console.log("customer/put: item exists ");
result[0].userjsondata = jsondata;
request.service.tables.getTable('User').update(result[0]);
response.send(statusCodes.OK, result[0]);
}
}
});
};
我正在尝试通过 'putting' 字符串化 json ('JSON.stringify') 更新我的 AMS table 列之一,其中注入了一些阿拉伯字符。
我的主要问题是,字符串化 json 中的阿拉伯字符在从 API 调用返回的那一刻就会损坏。
这里是 console.log 输出,显示执行 API 函数前后的字符串:
我怀疑您有问题,因为您在查询字符串而不是请求正文中传递更新参数。尝试这样调用 API:
azureMobileClient.azureMSC.invokeApi("customer", {
body: { phonenumber: phonenumber, jsondata: JSON.stringify(UpdatedJson) },
method: "put"....
然后在服务器脚本中引用 request.body
而不是 request.query
。
我有一个调用 Azure 移动服务 (AMS) API 的客户端功能来更新我的一个 AMS tables:
中的列azureMobileClient.updateCustomerUser = function (phonenumber, UpdatedJson) {
azureMobileClient.azureMSC.invokeApi("customer", {
parameters: {
phonenumber: phonenumber, jsondata: JSON.stringify(UpdatedJson)
},
method: "put"
}).done(function (results) {
console.log("updated customer json", UpdatedJson);
console.log("updated customer result", results.result);
}, function (error) {
alert(error.message);
});
}
这是我在 Azure 门户上 API 中的 exports.put 代码:
exports.put = function(request, response) {
console.log("customer/put");
var phonenumber = request.query.phonenumber;
var jsondata = request.query.jsondata;
console.log("customer/put phonenumber: " + phonenumber);
console.log("customer/put jsondata: " + jsondata);
console.log("customer/put request.query.jsondata: " + request.query.jsondata);
request.service.tables.getTable('User').where({ phonenumber: phonenumber, usertype: "300" }).read({
success: function(result) {
//Does not exist and nothing to update; return error
if (result.length === 0) {
console.log("customer/put: item does not exist");
response.send(statusCodes.NOT_FOUND, {message: "customer/put: item does not exist and not thing is updated"});
}
//Exists; update it
else {
console.log("customer/put: item exists ");
result[0].userjsondata = jsondata;
request.service.tables.getTable('User').update(result[0]);
response.send(statusCodes.OK, result[0]);
}
}
});
};
我正在尝试通过 'putting' 字符串化 json ('JSON.stringify') 更新我的 AMS table 列之一,其中注入了一些阿拉伯字符。
我的主要问题是,字符串化 json 中的阿拉伯字符在从 API 调用返回的那一刻就会损坏。
这里是 console.log 输出,显示执行 API 函数前后的字符串:
我怀疑您有问题,因为您在查询字符串而不是请求正文中传递更新参数。尝试这样调用 API:
azureMobileClient.azureMSC.invokeApi("customer", {
body: { phonenumber: phonenumber, jsondata: JSON.stringify(UpdatedJson) },
method: "put"....
然后在服务器脚本中引用 request.body
而不是 request.query
。