gpt4 book ai didi

jquery - 使用 JQuery .ajaxForm() 在 IE8 上出现 "Access is denied."错误

转载 作者:行者123 更新时间:2023-12-01 01:29:08 24 4
gpt4 key购买 nike

大家好,

我是 AJAX 新手,我遇到了 same origin policy 的问题使用 JQuery 1.4.4 和 jquery.form.js AJAX 插件进行保护。

我有一个 AJAX 联系表单,只要访问者在输入的 URL 前加上“www”,该表单就可以正常工作。但是,如果他们导航到我的网站(不使用 www),URL 仍然可以正常解析,但 URL 与我在 AJAX 表单中使用的 URL 不匹配。在 Chrome 中,这会导致控制台错误:

“XMLHttpRequest 无法加载 http://www.example.com/。Access-Control-Allow-Origin 不允许来源 http://example.com。”

在 IE8 上我收到“访问被拒绝”。因此,即使 URL 解析正确(无论是否带有“www”),如果访问者不以“www”开头,我的 AJAX 表单也将无法工作。如果我更改 AJAX 表单代码以发布到 http://example.com (没有“www”)那么如果访问者导航到 www.example.com,它将无法工作。我想不出如何让我的代码处理这两种情况。这几乎是每个使用 AJAX 的人都会遇到的问题,无论是否使用 JQuery。所以我一定错过了一些明显的东西。有人可以教我这个吗?我的测试代码如下。

谢谢

北克

<!DOCTYPE html> 
<html>
<head>
<meta charset="utf-8">
<title>ajaxForm Error Test</title>
<script src="http://www.example.com/js/jquery-1.4.4.min.js"></script>
<script src="http://www.example.com/js/jquery.form.js"></script>
</head>
<body>
<form id="contact-form" method="post" action="http://this-url-wont-be-used.com/">
<a href="#" id="contact-button">SEND</a>
</form>
<script>
//
// hook up the form to ajax
//
$('#contact-form').ajaxForm({
url: 'http://www.example.com/', // forcing the URL doesn't seem to help!
success: function(data) {
alert(data);
},
dataType: 'html'
});
//
// make the SEND link behave as if it's a submit button
//
$('#contact-button').click(function(e) {
$('#contact-form').submit();
});
</script>
</body>
</html>

最佳答案

域名 www.xyz.com 和域名 xyz.com 不同,因此如果您在 Javascript 文件中硬编码了网址,则会收到此错误。

简短的回答是不要使用相对 URL 而不是完整 URL。你没有显示实际的网址,所以我不能给你一个例子,但可以说域名是 http://www.xyz.com并且您需要将表单发布到网址 http://www.xyz.com/admin/form/

在您的 JavaScript 中,您使用的 url 是/管理/表单

这样,无论您的访问者使用什么网址访问您的网站,它都会起作用,并且不会导致跨域脚本错误。

当然,如果您的网站是公开的,您可能应该(永久)将您的 xyz.com 网站重定向到 www.xyz.com 网站。因为 Google 和其他搜索引擎将这两个域视为不同的域,并且您的网页排名将在这两个域中划分。

关于jquery - 使用 JQuery .ajaxForm() 在 IE8 上出现 "Access is denied."错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4834932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com