javascript使用ajax请求数据的url所指向服务器端文件是怎样的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript使用ajax请求数据的url所指向服务器端文件是怎样的?相关的知识,希望对你有一定的参考价值。

如:
var x=XMLHttpRequest();
x.open(method,url,asyn);
x.onreadystatechange=function()....;
x.send(date or null);
请问上面代码中x.open(method,url,asyn)中url所指向的链接文件是怎样的?能否写个范例?
我就是非常不理解ajax请求的数据内容是怎样的,在w3school中,也只是给个链接,然后就可以了,但是不知道这个链接所指向的文件是用什么语言写的?js的ajax请求支持什么样格式的文件?

最后,在本地电脑上怎样才能模仿真实客户端与服务端数据交流?例如,怎样实现请求服务器中的某某文件到本地页面的指定内容?
详细描述:我现在使用apache+mysql+php搭建了一个php运行环境,也就是搭建了一个本地服务器。可以使用 localhost 在浏览器上访问页面,像真实网络那样,输入路径,就可以访问页面。然后,我现在在本地电脑上创建了一个html文件,在文件中使用XMLHttpRequest.open("get",url,true);这个url所请求的数据应该是怎样的数据?只要给出一个最普通的范例就可以了,谢谢。然后怎么向我使用apache创建的web网站请求到数据?就是这个地方,我一直不会,我现在只知道ajax的书写格式,却始终没有办法实现它该有的效果,请问如何做到,跪求了!

回答你的

问题1:但是不知道这个链接所指向的文件是用什么语言写的?

答:php语言、asp语言、java等服务器端脚本语言

问题2:js的ajax请求支持什么样格式的文件?

答:我想你问的是发送的ajax请求的数据类型吧?也就是你上面例子中的data,

这个是有三种

    1.text文本类型(即普通字符串)

    2.xml

    3.json

问题3:然后怎么向我使用apache创建的web网站请求到数据?

答:

ajax_demo01.html文件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ajax无刷新弹窗</title>
<script type="text/javascript" src="./public.js"></script>
<script type="text/javascript">
/*动态绑定事件*/
window.onload = function() 
$('btn').onclick = function() 
//1.创建Ajax对象
var xhr = createXhr();
//2.初始化
xhr.open('get', 'ajax_demo01.php');
//3.当状态码发生改变时,自动执行的回调函数
xhr.onreadystatechange = function() 
//判断状态码变化值
if (xhr.readyState == 4) 
//状态接收完毕时,弹出内容字符串
alert(xhr.responseText);

;

//4.发送Ajax请求(由于是get请求,所以,请求数据在url,这里传Null)
xhr.send(null);


</script>
</head>
<body>
<input type="button" id="btn" value="确定">
</body>
</html>

自己封装的public.js文件

function createXhr()
try
return new XMLHttpRequest();
catch(e)


try
return new ActiveXObject('Microsoft.XMLHTTP');
catch(e)


alert("Ajax对象由于浏览器罕用而创建失败");


function $(id)
return document.getElementById(id);

ajax_demo01.php文件

<?php
echo "hello ajax";

追问

我测试过了,有用!就是你还有些没有说清楚,因为实在本地电脑上(家用电脑)测试,所以应该说明这些文件必须放在创建的网站目录下(以前我都是随便在本地磁盘上放文件,然后直接打开文件!),且必须通过浏览器访问网站文件,直接打开无效,我就是这样成功的(不知是否还有其他方法?),谢谢,今天终于弄懂了!

参考技术A 我也只知道ajax的书写格式,没有办法实现它该有的效果,请问如何做到

使用 Ajax/Javascript/Django 的 CORS 请求

【中文标题】使用 Ajax/Javascript/Django 的 CORS 请求【英文标题】:CORS request with Ajax/Javascript/Django 【发布时间】:2016-11-01 14:25:32 【问题描述】:

我想向谷歌发出 CORS 获取请求(只是一个例子。我实际上正在访问一个返回 json 数据的网站)。下面是我的ajax代码:

$.ajax(
    url: "https://www.google.com",
    type: "get",
    dataType: "json",
    crossDomain: true,
    success: function(data, textStatus) 
        alert ("success" + data);
    ,
    error: function(data, textStatus) 
        alert ("fail" + data);
    
)

使用上面的代码我得到了这个错误:

XMLHttpRequest cannot load https://www.google.com/. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://sdlweb-dev:1234' is therefore not allowed access. The response had HTTP status code 405.

我尝试添加类似的代码

        headers: 
            "Access-Control-Allow-Origin": "*",
            "Access-Control-Allow-Headers": "X-Requested-With,content-type",
            "Access-Control-Allow-Credentials": true
        

但仍然出现同样的错误。

我尝试将 dataType 从“json”更改为“jsonp”。这种方式发送请求,但由于响应不是jsonp,我得到另一个错误:

Uncaught SyntaxError: Unexpected token <

如果不修改服务器端(我的意思是我发送 get 请求的 url,因为我无权访问它),我可以发送 CORS 请求吗?

感谢任何帮助!!!

谢谢,

【问题讨论】:

【参考方案1】:

必须有权访问服务器代码才能允许 CORS 请求。

您显示的标头应该是在响应中发回的标头,而不是在请求中。

【讨论】:

谢谢!服务器,你的意思是我试图访问的服务器,对吧? (不是我托管我的网站的服务器) 另外,我可以通过将 dataType 设置为“jsonp”来获得响应。但是由于返回的数据类型不是“jsonp”,有没有办法以某种方式包装它并获取内容? @Feiiiiiiiiiiiii 回答您的第一条评论:是的。回答你的第二个:不。

以上是关于javascript使用ajax请求数据的url所指向服务器端文件是怎样的?的主要内容,如果未能解决你的问题,请参考以下文章

python测试开发django-145.$.ajax() 请求 javascript 获取当前 URL 参数

Javascript-- jQuery Ajax应用

JavaScript 学习-39.jQuery Ajax请求

使用 Ajax/Javascript/Django 的 CORS 请求

JQuery学习之Ajax应用

JQuery学习之Ajax应用