我在我的机器上的 Apache 下部署了一个 HTML + KnockoutJS + JQuery 站点,可在http://daily/admin.html
(或http://localhost/admin.html
)访问。后端在 Sinatra 中构建并在 rackup 下运行,因此我可以访问它的 APIhttp://localhost:9292/api/items
问题是,如果我执行 AJAX GET 请求,我会得到:
XMLHttpRequest cannot load http://localhost:9292/api/items. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
我的解决方法是将以下行添加到 Sinatra 应用程序:
headers['Access-Control-Allow-Origin'] = 'http://daily'
问题是现在我无法使用 Ajax 进行 POST。我收到以下消息:
Cross origin requests are only supported for HTTP.
JSONP 是一种选择吗?我可以使用 JSONP 进行 POST 吗?