javascript - EWS - JSON 内容中无法识别 token

标签 javascript json rest office365 exchangewebservices

我尝试使用 Javascript 和 REST API 通过 EWS 发送电子邮件。 到目前为止,OAuth 还不是问题。 问题是,如果我尝试发送电子邮件,服务器会发送以下响应:

"{"error":{"code":"RequestBodyRead","message":"无效的 JSON。 JSON 内容中无法识别 token 。“}”(取自 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": "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="650f0a0d0b010a0025160a0800110d0c0b024b060a08" rel="noreferrer noopener nofollow">[email protected]</a>"
                    }
                }
            ]
        },
        "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 未经授权。 token 是正确的。 范围也是正确的。

也许我在“var Massage”或其他什么方面犯了一个简单的错误......

最佳答案

我自己找到了解决方案。 我必须取消注释以下代码行:

eMailData = JSON.stringify(eMailData);

现在一切正常。

关于javascript - EWS - JSON 内容中无法识别 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34652645/

相关文章:

php - Office 365 SharePoint 网站从外部 MySQL 和/或 PHP 服务器访问数据

json - 使用 Perl 将 json 转换为数组

c# - RestSharp 请求 momentapp 的 restful api

javascript - 如果在选择列表 'b' 中选择了一个选择选项,如何从相同的选择列表 'c' 和 'a' 中删除该选项?

javascript - 为什么 getFloatFrequencyData 返回的值为负数?

javascript - 如何在 Nest.js 中为 @Body 构造 DTO

javascript - 使用键和值将数组转换为 JSON

api - 什么 HTTP 状态代码表示已验证但需要接受条款

mysql - Grails 3 urlMappingsReport 失败

javascript - 无法更新字符串的第一个字符 - Javascript