【问题标题】:How to get/post/delete/put information with jQuery and AJAX如何使用 jQuery 和 AJAX 获取/发布/删除/放置信息
【发布时间】:2012-04-18 03:58:40
【问题描述】:

我尝试使用 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 消息。

有什么想法吗?

【问题讨论】:

  • 您的服务器是否配置为接受发布、删除、放置请求?
  • 视情况而定。您在服务器端使用什么技术?
  • 我不是 Rails 专家,但您似乎已经在资源控制器中定义了 def createdef destroydef update 方法。在guides.rubyonrails.org/routing.html 中查找第 2.2 节。让我知道这是否有帮助
  • 嗨,我已经定义了这些方法,而且,我已经在本地测试了它们。问题是当我尝试使用来自另一个域的方法 DELETE 和 PUT 时。
  • 对于 DELETE 请求,尝试将数据添加到查询字符串(如 http://example.com/s?a=b&c=d)而不是将其传递给数据参数...让我知道会发生什么

标签: ajax jquery


【解决方案1】:

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

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

【讨论】:

  • 哦,好的。明天我会看看那个链接,如果它有效,我会标记你的答案。谢谢。
  • 嗨,这适用于获取和发布内容,但我还需要知道如何使用 PUT 和 DELETE 方法。我怎样才能做到这一点?谢谢。
猜你喜欢
  • 1970-01-01
  • 2017-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多