EWS - JSON 内容中的令牌未被识别
EWS - A token was not recognized in the JSON content
我尝试使用 Javascript 和 REST API 通过 EWS 发送电子邮件。
到目前为止,OAuth 不是问题所在。
问题是,如果我尝试发送电子邮件,服务器会发送此响应:
"{"error":{"code":"RequestBodyRead","message":"Invalid JSON. A token was not recognized in the JSON content."}"(取自 Chrome 调试控制台) .
这里是我的Javascript,错误发生的地方:
function mailIsRaus(token) {
var gottenParam = JSON.stringify(token);
var jsonObj = JSON.parse(gottenParam);
var leToken = jsonObj['access_token'];
//This is the Token from Active Directory
leToken = "Bearer " + leToken;
var Message = {
"Message": {
"Subject": "TESTING REST API EWS",
"Body": {
"ContentType": "Text",
"Content": "IT WORKED. The EWS is working my friend."
},
"ToRecipients": [
{
"EmailAddress": {
"Address": "johndoe@something.com"
}
}
]
},
"SaveToSentItems": "true"
};
//eMailData = JSON.stringify(eMailData);
$.ajax({
type: 'POST',
beforeSend: function (request) {
request.setRequestHeader("Authorization", leToken);
request.setRequestHeader("Content-Type", "application/json");
},
data: Message,
url: 'https://outlook.office.com/api/v2.0/me/sendmail',
success: function (e) {
console.log('Email sent');
console.log(e);
},
error: function (message) {
console.log(message);
}
});
}
我严格遵守 MSDN,现在,我不知道为什么会出现此错误。
如果我注释掉 "setRequestHeader",我会收到 401 未经授权的错误。
令牌是正确的。
作用域也正确。
也许我在 "var Massage" 中犯了一个简单的错误...
我自己找到了解决方案。
我不得不取消注释以下代码行:
eMailData = JSON.stringify(eMailData);
现在一切正常。
我尝试使用 Javascript 和 REST API 通过 EWS 发送电子邮件。 到目前为止,OAuth 不是问题所在。 问题是,如果我尝试发送电子邮件,服务器会发送此响应:
"{"error":{"code":"RequestBodyRead","message":"Invalid JSON. A token was not recognized in the JSON content."}"(取自 Chrome 调试控制台) .
这里是我的Javascript,错误发生的地方:
function mailIsRaus(token) {
var gottenParam = JSON.stringify(token);
var jsonObj = JSON.parse(gottenParam);
var leToken = jsonObj['access_token'];
//This is the Token from Active Directory
leToken = "Bearer " + leToken;
var Message = {
"Message": {
"Subject": "TESTING REST API EWS",
"Body": {
"ContentType": "Text",
"Content": "IT WORKED. The EWS is working my friend."
},
"ToRecipients": [
{
"EmailAddress": {
"Address": "johndoe@something.com"
}
}
]
},
"SaveToSentItems": "true"
};
//eMailData = JSON.stringify(eMailData);
$.ajax({
type: 'POST',
beforeSend: function (request) {
request.setRequestHeader("Authorization", leToken);
request.setRequestHeader("Content-Type", "application/json");
},
data: Message,
url: 'https://outlook.office.com/api/v2.0/me/sendmail',
success: function (e) {
console.log('Email sent');
console.log(e);
},
error: function (message) {
console.log(message);
}
});
}
我严格遵守 MSDN,现在,我不知道为什么会出现此错误。 如果我注释掉 "setRequestHeader",我会收到 401 未经授权的错误。 令牌是正确的。 作用域也正确。
也许我在 "var Massage" 中犯了一个简单的错误...
我自己找到了解决方案。 我不得不取消注释以下代码行:
eMailData = JSON.stringify(eMailData);
现在一切正常。