我想制作一个关于HTML/JS 同源政策的社区维基,希望能帮助任何人搜索这个主题.这是SO上搜索次数最多的主题之一,没有统一的wiki,所以我去:)
相同的源策略可防止从一个源加载的文档或脚本从另一个源获取或设置文档的属性.此政策可以追溯到Netscape Navigator 2.0.
请保持示例详细,最好还链接您的来源.
我需要了解一个Web应用程序如何使用HTTPS.但我真的找不到有关它的更多信息.我试图设置我的本地Apache,但我找不到CA autorithy签署我的证书...提示?建议?
我有一个案例,我需要从HTTPS页面执行AJAX请求到不安全的另一个(在不同的域上).我们已经实施了CORS策略,在我们的网站上使用HTTPS之前它工作正常.有没有办法让这项工作?
我尝试执行ajax,我的代码写在https网站上,请求非https,但资源被Chrome阻止.
$.ajax({
url : "http://example.com/non-https",
..
..
Run Code Online (Sandbox Code Playgroud)
以前在早期版本中我没有这个问题.我的ajax请求也必须定位到https吗?或者有更好的方法来保存这个问题?
这是我在 Google App Engine 上运行的 Python 脚本:
import webapp2
form = """
<form action="/testform">
<input name="q">
<input type="submit">
</form>
"""
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers.add_header("Access-Control-Allow-Origin", "*")
self.response.write(form)
class TestHandler(webapp2.RequestHandler):
def get(self):
q = self.request.get("q")
self.response.out.write(q)
print(q)
app = webapp2.WSGIApplication([
('/', MainPage),
('/testform', TestHandler)],
debug=True)
Run Code Online (Sandbox Code Playgroud)
我正在控制台上运行 AJAX 以查看是否可以让两者相互交谈。
$.ajax({
type: 'GET',
url: url,
})
Run Code Online (Sandbox Code Playgroud)
但是,我收到一个错误:
jquery.min.js:4 GET https://localhost:8080/testform?q=somethingnew1 net::ERR_SSL_PROTOCOL_ERROR
Run Code Online (Sandbox Code Playgroud)
我试过谷歌搜索它,但不确定它是什么意思。任何人都可以就我做错了什么以及我应该如何解决它提出一些建议吗?
谢谢!
我正在尝试从http://timeapi.org/utc/now.json获取当前时间。我正在使用以下内容:
var date;
$.ajax({
dataType: 'jsonp',
url: 'http://timeapi.org/utc/now.json',
success: function (result) {
date = result.dateString;
}
});
Run Code Online (Sandbox Code Playgroud)
该URL仅可作为HTTP使用,但我是从HTTPS站点调用它。这导致错误:
“ https://myurl.com ”是通过HTTPS加载的,但请求了不安全的脚本“ http://timeapi.org/utc/now.json?callback=jQuery1122020058229618158618_1466258121249 ”。该请求已被阻止;内容必须通过HTTPS提供。
timeapi网站实际上不以https形式存在,因此将URL更改为https会导致一个新错误:http : //timeapi.org/utc/now.json
如何强制加载?似乎没有任何HTTP Web时间服务,但我想必须有一种方式可以使https站点上的人们也使用外部计时服务。