javascript - 是否可以用JQuery .ajax()实现 'PUT'数据跨域

标签 javascript jquery ajax json

我们尝试将一些数据放入我们的服务器,服务器端应该没问题,因为我们已经使用 DEV HTTP CLIENT Chrome 扩展进行了测试。这是我们的代码,我认为它应该可以工作,但我不知道如何修复跨域错误。

$.ajax({
        type: "PUT",
        url: '...../add?callback=JSONPCallback',
        contentType: "application/jsonp; charset=utf-8",
        data: JSON.stringify({
            "name": "Test",
        }),
        jsonpCallback: "JSONPCallback",
        crossDomain: true,
        success: function (result) {
            console.log('Success!');
        },
        error: function (a, b, c) {
            console.error(a + " " + b + " " + c);
        },
        fail: function (e) {
            alert('fail');
        }
    });
}

在 GET 请求中,我们使用了 'dataType: 'jsonp' ',但这不适用于 PUT 。是否有可能在 success 方法中 PUT 一个 json 对象并获取一个 jsonp 对象?

最佳答案

JSONP 是一种 GET 操作(具体来说,是通过 script 标记创建的操作)。

可以执行跨域PUT,只是不是以JSONP方式。您的目标服务器必须通过 Cross Origin Resource Sharing 允许您的来源(并且您的浏览器必须 support CORSXMLHttpRequest,而不是 IE8 和 IE9 XDomainRequest 对象 - 尽管如果您需要 IE8 和 IE9 支持,如果您环顾四周,您会发现一个 jQuery 插件,使 jQuery 在这些浏览器上使用 XDomainRequest)。

关于javascript - 是否可以用JQuery .ajax()实现 'PUT'数据跨域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23514411/

相关文章:

php - 显示两个 PHP 变量开关的更好方法 jQuery Ajax

javascript - 在 IE 中使用 setImmediate() 而不是 setTimeout(func,0)

javascript - bootstrap.js 是专门的库、插件还是其他东西?

javascript - 保存用户动态添加的字段中的多个输入

javascript - 未找到 AngularJS 页面。主页已注入(inject)索引模板,但未注入(inject)其他页面

jquery - 触发链接点击Ajax成功

javascript - 解析推送通知移除定时推送

php - 停止 JQuery 中的动画延迟

javascript - 将隐藏应用于数组中的第一个元素

javascript - 触发 Ember 组件中的函数