0

以下 ajax 的工作方式与 Chrome 中宣传的完全一样。HTTP PUT 用于触发将对象插入 RESTful API。

        $.ajax({
            type: "PUT",
            url: "/ajax/rest/team/create/",
            dataType: "json",
            processData: false,
            data: JSON.stringify(teamObject),
            success: function (response) {
                teamObject = response.object;
            }
        }); 

我注意到 jQuery API 文档很有帮助地告诉我 PUT 和 DELETE 可能有效,但不能保证在所有浏览器中都有效。比如我的问题。

遇到这样的问题,应该如何在客户端实现 RESTful API?

编辑:Firebug 告诉我 FF 确实在发出 PUT,但由于某些目前未知的原因,它在到达服务器之前就死了。重复一遍,这在 Chrome 中运行良好。

编辑:提琴手根本看不到 FF 尝试。:(

4

2 回答 2

0

我得到了以下工作。

var payload = JSON.stringify(teamObject)
syncHTTP('/ajax/rest/team/create/', 'PUT', payload);

function syncHTTP(url,method,payload) {
    var client = new XMLHttpRequest();

    client.open(method, url, false);
    client.setRequestHeader("Content-Type", "text/plain");
    client.send(payload);
}

我宁愿使用 jQuery,也不愿自己动手。:| 如果有人弄清楚了,只需添加一个答案,如果可行,我会接受。

谢谢。

于 2013-05-04T19:03:12.800 回答
0
    $.ajax({
        type: "PUT",
        url: "/ajax/rest/team/create/",
        dataType: "json",
        contentType: "application/json",
        processData: false,
        data: JSON.stringify(teamObject),
        success: function (response) {
            teamObject = response.object;
        }
    }); 

您需要添加内容类型。当 contentType 设置为 application/json jquery 不要尝试从 JSON 字符串创建 JSON 对象,而是按原样发送 - 作为字符串。

于 2013-08-01T15:03:25.120 回答