JSON asp.net API 中的字符串参数中不允许使用 ascii
ascii is not allowed in JSON string parameter in asp.net API
我正在尝试将 JSON 字符串从 ajax 调用发送到 ASP.NET api。
JSON 字符串到达但被截断为 ascii 代码。
那么如何在我的参数字符串中允许使用 ascii 码?
相关代码如下:
function sendBewerkVacature(id) {
var velden = document.getElementsByClassName("veld");
var veldenArray = "{'" + velden[0].name + "' : '" + velden[0].value+"'";
for (var i = 1; i < velden.length; i++) {
veldenArray = veldenArray + ", '" + velden[i].name + "' : '" + velden[i].value+"'";
}
veldenArray = veldenArray + "}";
var JSONVelden = JSON.stringify({ "velden": veldenArray });
console.log(JSONVelden);
$.ajax({
url: "http://localhost:26454/api/Vacatures/PostEditVacature?id=" + id + "&velden=" + JSONVelden,
type: "POST",
statusCode: {
200: function (data) {
alert("Geslaagd!");
}
}
})
}
public HttpResponseMessage PostEditVacature(int id, string velden)
{
db.vacatures.Find(id);
JavaScriptSerializer serializer = new JavaScriptSerializer();
vacatures vacature = (vacatures)serializer.DeserializeObject(velden);
var response = new HttpResponseMessage(HttpStatusCode.OK);
return response;
}
发送的字符串如下所示:
object a:{"velden":"{'FunctieTitel' : 'Natuurkunde', 'school_naam' : 'undefined', 'vak_naam' : 'Natuurkunde', 'aantal_uren' : '18-25', 'datum_ingang' : '16-2-2011', 'omschrijving' : '<p>Voor de afdeling havo/vwo klas 2 en 3 zijn wij op zoek naar een docent(e) Natuurkunde 2e graads voor 18 tot 25 lesuren per week.</p><p> </p><p>Locatie: Koninginnelaan te Vlaardingen</p><p>Klassen: leerjaar 2 en 3 havo/vwo</p><p>Salaris: inschaling in LB, arbeidsvoorwaarden conform CAO Voortgezet Onderwijs.</p><p>Ingangsdatum: 01-08-2011, tijdelijke aanstelling met uitzicht op een vaste aanstelling.</p>'}"}
但在控制器中它看起来像这样:
{"velden":"{'FunctieTitel' : 'Natuurkunde', 'school_naam' : 'undefined', 'vak_naam' : 'Natuurkunde', 'aantal_uren' : '18-25', 'datum_ingang' : '16-2-2011', 'omschrijving' : '<p>Voor de afdeling havo/vwo klas 2 en 3 zijn wij op zoek naar een docent(e) Natuurkunde 2e graads voor 18 tot 25 lesuren per week.</p><p>}
因此您在查询字符串中发送 json。
您的查询字符串类似于:
?id=1234&velden={'vacancy_name': 'clown', 'vacancy_description':'juggle & be funny'}
所以现在您的查询字符串包含一个意外的 &
,表示一个查询字符串参数的结尾和下一个查询字符串的开始。
你需要
encodeURIComponent(JSONVelden)
在将其添加到查询字符串之前。
更好的是,了解如何 post JSON 而不是在查询字符串参数中发送它。
我正在尝试将 JSON 字符串从 ajax 调用发送到 ASP.NET api。 JSON 字符串到达但被截断为 ascii 代码。
那么如何在我的参数字符串中允许使用 ascii 码?
相关代码如下:
function sendBewerkVacature(id) {
var velden = document.getElementsByClassName("veld");
var veldenArray = "{'" + velden[0].name + "' : '" + velden[0].value+"'";
for (var i = 1; i < velden.length; i++) {
veldenArray = veldenArray + ", '" + velden[i].name + "' : '" + velden[i].value+"'";
}
veldenArray = veldenArray + "}";
var JSONVelden = JSON.stringify({ "velden": veldenArray });
console.log(JSONVelden);
$.ajax({
url: "http://localhost:26454/api/Vacatures/PostEditVacature?id=" + id + "&velden=" + JSONVelden,
type: "POST",
statusCode: {
200: function (data) {
alert("Geslaagd!");
}
}
})
}
public HttpResponseMessage PostEditVacature(int id, string velden)
{
db.vacatures.Find(id);
JavaScriptSerializer serializer = new JavaScriptSerializer();
vacatures vacature = (vacatures)serializer.DeserializeObject(velden);
var response = new HttpResponseMessage(HttpStatusCode.OK);
return response;
}
发送的字符串如下所示:
object a:{"velden":"{'FunctieTitel' : 'Natuurkunde', 'school_naam' : 'undefined', 'vak_naam' : 'Natuurkunde', 'aantal_uren' : '18-25', 'datum_ingang' : '16-2-2011', 'omschrijving' : '<p>Voor de afdeling havo/vwo klas 2 en 3 zijn wij op zoek naar een docent(e) Natuurkunde 2e graads voor 18 tot 25 lesuren per week.</p><p> </p><p>Locatie: Koninginnelaan te Vlaardingen</p><p>Klassen: leerjaar 2 en 3 havo/vwo</p><p>Salaris: inschaling in LB, arbeidsvoorwaarden conform CAO Voortgezet Onderwijs.</p><p>Ingangsdatum: 01-08-2011, tijdelijke aanstelling met uitzicht op een vaste aanstelling.</p>'}"}
但在控制器中它看起来像这样:
{"velden":"{'FunctieTitel' : 'Natuurkunde', 'school_naam' : 'undefined', 'vak_naam' : 'Natuurkunde', 'aantal_uren' : '18-25', 'datum_ingang' : '16-2-2011', 'omschrijving' : '<p>Voor de afdeling havo/vwo klas 2 en 3 zijn wij op zoek naar een docent(e) Natuurkunde 2e graads voor 18 tot 25 lesuren per week.</p><p>}
因此您在查询字符串中发送 json。
您的查询字符串类似于:
?id=1234&velden={'vacancy_name': 'clown', 'vacancy_description':'juggle & be funny'}
所以现在您的查询字符串包含一个意外的 &
,表示一个查询字符串参数的结尾和下一个查询字符串的开始。
你需要
encodeURIComponent(JSONVelden)
在将其添加到查询字符串之前。
更好的是,了解如何 post JSON 而不是在查询字符串参数中发送它。