我在我的机器上部署了Apache下的HTML + KnockoutJS + JQuery站点,可访问http://daily/admin.html
(或http://localhost/admin.html
)。后端是建立在西纳特拉和下rackup运行,这样我就可以在http://localhost:9292/api/items
访问其API的问题是,如果我做一个AJAX的GET请求,我得到:如何在使用JQuery(和Sinatra)POST时避免跨源请求问题
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吗?
错误消息那种混淆了我。您是否使用HTTPS? –
不是,这是相同的原产地政策,我猜 – vicusbass
这是“只为HTTP”,让我困惑。因为,那么还有什么应该支持?当然,它是HTTP,因为浏览器正在说什么...... =>奇怪的错误信息。 –