gpt4 book ai didi

javascript - 如果服务器端代码托管在不同的域上,ajax 会运行吗?

转载 作者:行者123 更新时间:2023-11-28 21:07:33 25 4
gpt4 key购买 nike

我打开 Firefox 的草稿本并输入...

function ajaxRequest()
{
var xmlhttp;
var domainName = location.host;
var url = 'http://leke.dyndns.org/cgi/dn2ipa/resolve-dns.py?domainName=';
url = url + domainName + '&x=' + Math.random(); // x= to avoid browser caching;

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(domainName+'='+xmlhttp.responseText);
}
}
xmlhttp.open("GET",url,true);
xmlhttp.send();
}

ajaxRequest();

为什么我的 ajax 代码在与远程脚本 (http://leke.dyndns.org) 相同的域中工作,但不能在其他域(如 http://stackoverflow.com )中工作?

如果有帮助,这里是 cgi 方面...

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import os, cgi, cgitb, socket
cgitb.enable()

cgiData = cgi.FieldStorage() # Domain Name
domainName = cgiData.getvalue('domainName')
ipa = socket.gethostbyaddr(domainName)
sendIpa = ipa[2][0]

print 'Content-Type: text/html;charset=utf-8'
print ""
print sendIpa

最佳答案

不,不会。这是设计使然( same origin policy )并且是为了防止 cross site scripting攻击。

您可以使用 JSONP 来解决这个问题如果您确实必须这样做,但不建议这样做,因为您可能会允许另一个网站(即使您信任网站管理员,该网站也可能会被攻击者攻击)对登录用户的数据执行任何他们喜欢的操作。

关于javascript - 如果服务器端代码托管在不同的域上,ajax 会运行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9515282/

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