如何使用jQuery和AJAX获取/发布/删除/放置信息

时间:2012-04-17 19:36:36

标签: ajax jquery

我尝试使用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"到"删除"或" PUT"我有以下错误:

  

NetworkError:404 Not Found

当我将其更改为" GET"它抛出以下消息:

  

200 OK

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

{"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}}

请注意:我的应用从远程服务器获取此信息,但我不知道这是否与此问题有关。因为我已在谷歌浏览器中运行它,并且我已在浏览器的控制台上收到访问控制 - 允许 - 来源消息。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

出于安全原因,您无法使用jQuery创建跨域AJAX请求。但是,您可以使用jsonp,前提是您要求提供数据的网址已设置为处理jsonp次请求。

这篇文章可以帮助你解决更多问题:http://www.fbloggs.com/2010/07/09/how-to-access-cross-domain-data-with-ajax-using-jsonp-jquery-and-php/