javascript - JQuery 跨域 GET 请求不起作用

标签 javascript jquery json jsonp

我正在尝试设置一个简单的界面来测试 Basecamp API。我设置了 dataType = jsonp 以避免跨域问题。进行调用时,我可以在检查器中看到响应正在发送回格式正确的 JSON。然而,我的错误警报显示 4 和 200,但响应文本是“未定义”。我假设我没有正确从 jsonp 转换为 json,但我是否需要得到我想要的响应?或者我没有正确访问响应。

代码:

function findAllProjects() {
    console.log('findAllProjects');
    $.ajax({
        type: 'GET',
        url: rootURL + "projects.json",
        username: "username",
        password: "password",
        crossDomain: true,
        //contentType: "application/json",
        dataType: "jsonp", // data type of response

        success: function(data) {
            alert(data[0].id);
            console.log("Success function!");
            console.log(data);
        },

        error: function(xhr, err) {
            //alert("Error!");
            alert("readyState: "+ xhr.readyState+"\nstatus: "+ xhr.status);
            alert("responseText: "+ xhr.responseText);
        },
    });
}

最佳答案

您的 URL 适用于 .json 文件,但 JSONP 需要一个经过特殊格式化的 JavaScript 文件,以便将结果传递到您控制的函数中(或者由 jQuery 管理,因为您正在使用它) )。无论哪种方式,服务器都需要支持 JSONP,您不能只请求 JSON 文件并将其强制转换为 JSONP 交互。

关于javascript - JQuery 跨域 GET 请求不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21239702/

相关文章:

javascript - React - 当同一组件有多个实例时如何改变单个组件的状态?

javascript - jQuery 调整大小和定位当前浏览器窗口

javascript - AJAX 调用不调用提醒

java - 如何通过 JSON 从 URL 获取数据

javascript - JSON 自动解析为 Javascript 中的对象

javascript - 如何使用 javascript 将图像的尺寸添加到图像 URL 中?动态使用调整大小 : w=400&h=153

javascript - 使用vue.js和vee-validate,在: and a computed field doesn't seem to work之后使用日期验证

javascript - 多行 JSON 字符串到多行 Javascript 字符串

Python ISO 日期时间包含 'T' 字符

javascript - 反转JavaScript if查询中两条 "or"语句的逻辑