没有Web服务器的Ajax代码

我在我的系统上运行没有服务器的ajax,我用它创建了一个index.html

javascript函数:

function do_the_click(url) { alert('inside this method do_the_click'); $.ajax({ async: false, url : url, contentType: "text/html", type : "GET", dataType : "text/html", success: function(data){ alert('data'); }}); } 

我的HTML正文内容是:

 Java Collections 

我能够在此方法do_the_click *中的警报窗口*中获取此消息,但无法在警报窗口中获取数据,因此无法在index.html中获取页面https://stackoverflow.com/questions/20829481/ajax-code-without-web-server/Java Collections.html,

我在google上搜索了如何在不使用jquery.ajax中的服务器的情况下在本地加载数据但是没有得到任何好的解决方案,所以我认为如果它驻留在stackoverflow上它对其他人也有好处。

你做不到这样的事情。 如果您没有服务器,则无法发送ajax,这将是一个跨浏览器问题。 正如其他人所说ajax不能与file://协议一起使用,你需要一个服务器来进行ajax支持的http://调用。

当您使用独立的html文件发出AJAX请求时,对URL的HTTP请求由浏览器发出。 所有你需要确保的是你已经包含了JQuery。 这是你必须做的。

包括Jquery:

  

这里的JQuery驻留在js文件夹中。 这包含在独立的html文件中。 现在要使AJAX请求使用以下代码。

 $.ajax({ type: 'GET', url: url, success: function(data){ console.log(data); }, async:false }); 

AJAX创建一个必须由服务器响应的HTTP请求。 如果您没有服务器,则无法使用AJAX请求。 您可以在计算机上运行服务器,但这与从本地文件系统获取文件不同。

你将无法做到这一点。 如果您没有服务器,则会违反浏览器的跨域策略,因为您没有域名!

AJAX无法通过文件系统工作,您需要一台服务器。

我能够在没有webserver的情况下运行ajax,问题在于我的代码下面编写的代码,我在我的文件系统上运行,你也可以使用它。

  function do_the_click(brl) { alert('inside this method do_the_click'); alert(brl); var request = $.ajax({ async: false, url: brl, contentType: "text/html", type : "GET", dataType : "html", }); request.done(function( msg ) { alert(msg); $( "#contentarea" ).load( msg, function() { alert( "Load was performed." ); }); }); request.fail(function( jqXHR, textStatus ) { alert( "Request failed: " + textStatus ); }); } 

Java集合

这是一个较旧的线程,但浏览器不需要在OSX / Windows /等公共操作系统上运行。今天许多人正在从WPE / Wayland或QT5Webkit制作他们自己的浏览器,其中相同的原始策略不适用。

现在在当前情况下,它取决于您的服务器所在的位置。 如果服务器位于其他地方,则需要CORS(交叉源请求)。 所以使用file://与CORS完美配合。

我来到这个问题是因为我正在寻找原因,为什么我能够在不使用Web服务器的情况下发出ajax请求。 得到了答案谢谢!