1

我尝试使用 ajax 和 jquery 执行 DELETE、PUT、GET 和 POST 请求。

POST 方法可以通过创建新记录来很好地工作,但我无法使其与其他方法(PUT、DELETE 和 GET)一起工作。

这是代码(它工作正常,它创建新记录但它没有达到“成功”事件):

var jsonExample = {"advertisement":{"title":"test"}};

$.ajax({
            type: "POST",
            url: "http://example.com/advertisements.json",
            data:jsonExample,
            success: function(response){
                    alert("test");
            }
});

当我将类型“POST”更改为“DELETE”或“PUT”时,出现以下错误:

网络错误:404 未找到

当我将其更改为“GET”时,它会引发以下消息:

200 好

但它没有任何其他反应。它应该是这样的:

{"advertisement":{"created_at":"2012-04-17T13:20:17Z","from_age":null,"neighbourhood_id":null,"title":null,"date_to":null,"days":null,"promotion_id":null,"updated_at":"2012-04-17T13:20:17Z","date_from":null,"gender":null,"id":3,"display":null,"desc":null,"budget":null,"image":null,"to_age":null,"department_id":null,"town_id":null}}

请注意:我的应用程序正在从远程服务器获取此信息,但我不知道这是否与此问题有关。因为我已经在 Google Chrome 中运行了它,并且我在浏览器的控制台上收到了Access-Control-Allow-Origin消息。

有任何想法吗?

4

1 回答 1

2

出于安全原因,您不能使用 jQuery 进行跨域 AJAX 请求。jsonp但是,如果您请求数据的 URL 设置为处理请求,则您可以使用jsonp

这篇文章应该比我能帮助你更多:http ://www.fbloggs.com/2010/07/09/how-to-access-cross-domain-data-with-ajax-using-jsonp -jquery 和 php/

于 2012-04-17T19:58:40.223 回答