在使用jQuery学习Ajax请求的过程中,我尝试通过单击链接来加载google主页。所以我写了类似的东西:
$("#ajax").click (function (event) {
$("#g").html("Loading...");
$("#g").load("http://www.google.com");
event.preventDefault ();
});
在身体某处:
<a id="ajax" href="http://www.google.com">Load file ajax way</a>
<div id="g">Click the above link to load the page...</div>
哪个没有用,最初我以为是语法错误或某些错误。但是后来,当我在服务器上用静态html文件替换google url时,它可以正常工作。
$("#g").load("Temp.htm");
它是设计成这样工作的(如果是,为什么?),或者我做错了什么?
编辑:请问有人可以解释(或引用)跨域ajax调用引入的安全性问题吗?换句话说,为什么可以安全地打开另一个浏览器选项卡并打开google而不从页面内部打开?是为了保护呼叫者或被呼叫者?
jQuery使用ajax(XMLHttpRequest)请求来加载数据,但是浏览器允许此请求用于同一域上的资源。(上面的答案提到了同源政策)。这就是为什么它可与Temp.htm一起使用的原因,而不适用于www.google.com。
解决此问题的一种方法是创建一个服务器脚本,该脚本将为您加载页面-基本上是代理。然后你打电话
$('#g').load("load.php?url=google.com")
另一个解决方案是使用iframe进行通信-我发现了这个库,这似乎是您所需要的:jquery-crossframe
第三个选项是JSONP,但在您的情况下不起作用。
我的意见-选择服务器端代理作为第一选择。
为什么会有相同的原产地政策?
想象一下,您正在检查eBay帐户上的某些内容。然后,在另一个选项卡中,打开我的网站,我在其中的脚本中发出了一系列向ebay发出请求(您仍处于登录状态)的出价,甚至在没有引起注意的情况下竞标奥迪A8。烦人…如果是您的银行,可以直接从您那里窃取资金。
具有讽刺意味的是,尽管采用了相同的来源策略,但仍可能发生上述攻击。
问题内容: 我正在尝试使用Angular和Phonegap加载位于远程服务器上但遇到问题的视频。在我的JSON中,URL作为纯HTTP URL输入。 我的影片范本 我所有其他数据都已加载,但是当我查看控制台时,出现以下错误: 我尝试添加配置设置,但没有解决我的问题。 问题答案: 这是唯一对我有用的解决方案: 然后在iframe中:
我洛基,在“开始”之后,我遵循https://getbootstrap.com/docs/4.3/layout/overview/的指示(我猜在那个例子中缺少了一些东西) 我说: 链接到头标签中的css文件 但是它不起作用,类“hid-ph-flex”总是在“代码”显示中:无“代码”,火狐调试器警告说:“未知规则或错误读取规则在“包括” 我想我忘了一份文件,有什么帮助吗???
问题内容: 这是我的项目的布局: 这是Jenkins工作区的布局: 在eclipse下,测试运行没有任何错误。在詹金斯身上,测试只是失败了。Jenkins无法找到资源。以下是测试执行的一些输出: eclipse Jenkins 如您所见,Jenkins找不到我的资源。 我想念什么? 问题答案: 我终于解决了我的问题。在类路径上,该文件是在我的代码中调用该文件时命名的。您注意到大写了吗? 在Wind
正如你所看到的,詹金斯没有找到我的资源。 我错过了什么?
问题内容: 因此,我很难正常工作。我这样称呼它: 但是由于某种原因,在加载HTML页面时,不包含任何外部.js(我编写的实际上用于执行某些操作的文件)。我遵循以下重要的加载约定 有谁知道为什么没有正确加载?另外,pageshow函数也不会被触发,这很奇怪。看起来像这样: 现在,页面已呈现,但是没有任何功能发生。如果我入侵它并执行以下操作: 它将正常运行。 问题答案: jQuery Mobile不会
问题内容: 我正在使用jQuery SVG。我无法向对象添加或删除类。有人知道我的错误吗? SVG: 不会添加该类的jQuery: 我知道SVG和jQuery可以很好地协作,因为我 可以 定位对象并在单击对象时发出警报: 问题答案: 阅读以下两个答案。 jQuery 3修复了潜在的问题 Vanilla JS:可在现代浏览器中使用 jQuery(小于3)无法将类添加到SVG。 与SVG一起使用,因此