首页 > 解决方案 > 为什么我的 Ajax 请求包含数据类型:“jsonp”错误?

问题描述

我有以下 Ajax 调用:

var baseurl = Office.context.mailbox.restUrl;
var getMessageUrl = baseurl + "/v2.0/me/messages/" + rest_id + "?$select=SingleValueExtendedProperties&$expand=SingleValueExtendedProperties($filter=PropertyId eq 'String 0x007D')";


$.ajax({
        url: getMessageUrl,
        dataType: "jsonp",
        headers: {
            "Authorization": "Bearer " + rest_token,
            "Accept": "application/json; odata.metadata=none"
        },
        error: function (xhr, ajaxOptions, thrownError) {
            $('.resultsScore').text(xhr.statusText);
        }
    }).done(function (item) {

但是,这总是会引发错误(总是输入错误函数)。如果我使用 dataType:"json",它工作正常。我究竟做错了什么?为什么我不能以这种方式使用jsonp?

标签: javascriptjsonajaxjsonp

解决方案


该错误几乎可以肯定是因为响应不是 JSONP。

可能有几个原因。您调用的服务可能根本不支持它。另外,JSONP 请求不支持自定义 headers 的设置,所以你的 Authorization 会丢失。


推荐阅读