我有一个Ajax POST,它对数据进行编码,而不是以JSON格式发送数据。我必须丢失某些东西,但无法缩小范围。该API可在失眠状态下运行,但不能通过代码运行。
我将content-Type设置为application / json,并且尝试将contentType设置为false并明确指定了标头。主机以任何一种方式接收应用程序/ json。我尝试过以字符串,对象和函数形式进行发送。
data: jsonPacket,
data: JSON.stringify(jsonPacket),
data:function () {
return "foo bar";
}
所有尝试都会产生编码后的文本。
构建json对象
JSONpacket = {
"Destination": {
"ToAddresses": [
$('email').val()
],
"BccAddresses": [
"sombody@somewhere.com"
]
},
"Message": {
"Body": {
"Text": {
"Data" : "Test email",
}
},
"Subject": {
"Data": "Message received from Website"
}
},
"Source": "nobody@nowhere.com"
};
拨打电话
$.ajax({
type: "POST",
url: "https://x9beos0tm4.execute-api.us-west-2.amazonaws.com/stage/<sanitized>",
dataType: 'json',
contentType: 'application/json; charset=utf-8',
headers: {
"x-Api-Key": '**************************'
},
data: JSONstringify(JSONpacket),
success: function (data, status) {
$('#email_response').html(data);
$('#email_response').addClass('alert alert-success');
$('#email_response').slideDown();
setTimeout(function (e) {
$('#email_response').slideUp();
$('#email_response').val('');
$('#email_response').removeClass('alert alert-success');
$('#email').val('');
$('#name').val('');
$('#phone').val('');
$('#message').text('');
}, 15000);
},
error: function (xhr, status, errMessage) {
if (errMessage == "")
errMessage = xhr.statusText + " : " + xhr.status + ' - ' + xhr.responseJSON.message;
$('#email_response').addClass('alert alert-danger');
$('#email_response').html(errMessage);
$('#email_response').slideDown();
setTimeout(function (e) {
$('#email_response').slideUp();
$('#email_response').html('');
$('#email_response').removeClass('alert alert-danger');
}, 15000);
}
});
从ajax调用时收到的数据
"Destination%5BToAddresses%5D%5B%5D=sombodey%40somewhere.com&Destination%5BBccAddresses%5D%5B%5D=someonelse%40somewhere.com&Destination%5BBccAddresses%5D%5B%5D=nobody%40nowhere.com&Message%5BBody%5D%5BText%5D%5BData%5D=****+****+contact+Email%0D%0ASent+on+Saturday+August8+17th+2019+%40+10%3A04+am%0D%0A%0D%0AName%3A+******+*********%0D%0AEmail%3A+sombody%40somewhere.com%0D%0APhome%3A+9999999999%0D%0AMessage%3A%0D%0Asdffg%0D%0A&Message%5BSubject%5D%5BData%5D=Message+received+from+Website&Source=nobody%40nowhere.com
从失眠症(如邮递员)打电话时收到的数据
"body": "{\n \"Destination\": {\n \"ToAddresses\": [\n \"somebody@somewhere.com\",\n \"somebodyelse@somewhere.com\" ]\n },\n \"Message\": {\n \"Body\": {\n \"Text\": {\n \"Data\": \"Test email body from API\"\n }\n },\n \"Subject\": {\n \"Data\": \"Different Test Email Subject FROM API\"\n }\n },\n \"Source\": \"webadmin@nowhere.com\"\n}"
答案 0 :(得分:0)
愚蠢的人类把戏
两个问题:
CREATE DEFINER=`pro`@`%` PROCEDURE `get_rand`()
BEGIN
DECLARE regenerateNumber BOOLEAN default true;
declare regNum int;
declare cn varchar(255);
repeat
SET regNum := FLOOR(RAND()*90000000+10000000);
SET cn =(SELECT count(*) FROM stock WHERE id = regNum);
select regNum;
if cn=0
then
SET regenerateNumber = false;
end if;
UNTIL regenerateNumber=false
end repeat;
END
答案 1 :(得分:0)
\ n字符是在JSON.stringify中转换后的换行符。如果对它执行JSON.parse,则将获得不带\ n字符的原始对象。