如何构建非跨域的 AJAX API?
Posted
技术标签:
【中文标题】如何构建非跨域的 AJAX API?【英文标题】:How to build an AJAX API that is not cross domain? 【发布时间】:2017-07-28 01:10:50 【问题描述】:我正在构建一个 AJAX API,并且一直收到 405 错误(可能是因为我正在尝试发出跨域请求。
var API = function()
API.AddToCart = function(item_id)
$.ajax(
type: "POST",
url: "/add-cart-item/" + item_id,
success: function()
);
;
我不明白是什么让这个跨域,以及如何不发出跨域请求。有人可以帮我解释一下这个概念吗?
【问题讨论】:
【参考方案1】:仅仅因为您收到 405 并不一定意味着您有 CORS 问题。您确定服务器端的该方法允许使用 POST 方法吗?
【讨论】:
@JacobHenning 有时这是一个 CORS 问题,但是,如果您不发布跨域,通常是因为该方法只允许某些类型的请求,例如 GET 而不是 POST。通过使用 [HttpGet] 和 [HttpPost] 属性装饰您的控制器方法,您明确地只允许这些类型的请求。如果你想限制 PUT 或 DELETE 或其他类型的请求,你也可以组合它们 [HttpGet, HttpPost]【参考方案2】:您的服务器似乎不支持该端点的 POST 方法。更多解释请查看https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405。
【讨论】:
太棒了,我不知道你是怎么想出来的。我试图通过在“GET”请求中从 URL 中提取数据来做一些奇怪的事情。我真的不明白 AJAX 能够将数据发送到 URL。您可能已经注意到我的 AJAX 请求中没有“数据:*”部分。你知道解释这个概念的链接或网站吗? 如果您想了解更多和了解 AJAX 的核心概念,请查看此链接AJAX - MDN以上是关于如何构建非跨域的 AJAX API?的主要内容,如果未能解决你的问题,请参考以下文章