Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用ajax获取请求在localhost中抛出403错误,但在web服务器中没有_Php_Ajax_Localhost - Fatal编程技术网

Php 使用ajax获取请求在localhost中抛出403错误,但在web服务器中没有

Php 使用ajax获取请求在localhost中抛出403错误,但在web服务器中没有,php,ajax,localhost,Php,Ajax,Localhost,问题是,我从我的Web服务器下载代码,因为我需要进行一些测试,但当我尝试使用ajax访问路由时,它不允许我这样做,下面是我代码的一部分: function ajaxFunction(id){ // Para incompatibilidades try{ // Opera 8.0+, Firefox, Safari ajaxRequest = new XMLHttpRequest(); }catch (e){ // Internet Ex

问题是,我从我的Web服务器下载代码,因为我需要进行一些测试,但当我尝试使用ajax访问路由时,它不允许我这样做,下面是我代码的一部分:

function ajaxFunction(id){
   // Para incompatibilidades
   try{
      // Opera 8.0+, Firefox, Safari
      ajaxRequest = new XMLHttpRequest();

   }catch (e){

      // Internet Explorer Browsers
      try{
         ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");

      }catch (e) {
         try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
         }catch (e){
            // Something went wrong
            alert("Your browser broke!");
            return false;
         }
      }
   }


   // Here processRequest() is the callback function.
   ajaxId = id;

   switch (ajaxId) {

     case 1:
       data = document.getElementById('selectFinca').value;
       extraUrl = "finca_id=" + data;
       break;

     case 2:
       data = document.getElementById('selectFincaDesk').value;
       extraUrl = "finca_id=" + data;
      break;
   }
   ajaxRequest.onreadystatechange = endAjax;
   var url = "https://localhost/dev/ajax/out.php?ajaxId=" + ajaxId + "&" + extraUrl;
   ajaxRequest.open("GET", url, true);
   ajaxRequest.send(null);
我所需要的只是将ajaxId和finca_id发送到out.php,但这个错误是错误的:

GET https://localhost/dev/ajax/out.php?ajaxId=2&finca_id=24 403 (Forbidden)

问题是,它与在线工作的代码完全相同。

HTTP和HTTPS是向服务器发出请求的两种协议。还有其他的,但对于网站来说,这是两种常用的方法

当您使用HTTPS发出请求时,浏览器会尝试使用SSL证书建立安全连接。您收到403禁止的错误,因为您的本地计算机上显然没有SSL证书

一些JavaScript API需要HTTPS,如地理位置和浏览器通知,如果在没有安全连接的情况下使用,则会失败。虽然它们可以在本地主机上进行测试,但效果很好

HTTP只是一个常规的不安全连接,您应该期望您在这里传递的数据可以被任何人看到。你不会希望在没有SSL认证的情况下传递信用卡数据或个人信息

您有时会看到在JS库的CSS上忽略协议的链接,如下所示: //code.jquery.com/jquery-3.2.1.min.js

忽略协议并加载这样的资产只会告诉浏览器使用它当前使用的任何协议,这样,如果您在HTTP上开发了一个站点,然后转到HTTPS,您的HTTPS连接就不会因为尝试通过HTTP加载资产而中断

否则,您将不得不去更新每一个地方的东西正在加载为HTTP,这样您的HTTPS连接不会中断


希望有帮助

它将有助于提供out.php的内容,因为抛出错误403的原因可能很多。还可以尝试直接在浏览器中打开并检查输出-您可能会得到错误原因的线索。可能是您以HTTPS的形式请求它,而您显然没有本地主机上的HTTPS证书。尝试使用HTTP。@Abraham这就是问题所在,但是你能解释一下吗?@JorgeIvanAguirre如果你在测试环境中使用xampp,你可以通过这个链接学习