【问题标题】:AJAX only able to connect locally, Not using JSON on server sideAJAX 只能在本地连接,不能在服务器端使用 JSON
【发布时间】:2013-08-06 18:29:33
【问题描述】:

ajax 调用可以在本地进行,但是当我将其更改为我自己的 IP 或服务器(另一台机器)的 IP 地址时,它将无法与服务器本身通信?

我该如何解决这个问题?我没有在服务器上使用 JSON,所以我仍然可以将 dataType 更改为 json 并使用它来连接[尝试过错误:0 和错误:jsonp 的错误:200]。

<script>
$(function() {  
  $(".button").on("click",(function() {  
      var cli=$("input#clien").val();
      var use=$("input#username").val();
      var dataString="Clien="+cli+"&UserName="+use;
      $.support.cors = true;
        $.ajax({  
              type: "POST",  
              url: "http://localhost:8080/services/web?wsdl/Authen",  

如果我将(更改为另一台主机 PC IP 地址)它为

url: "http://192.168.1.23:8080/services/web?wsdl/Authen", 

那么它将没有来自服务器的响应。

              data: dataString,
              dataType:'html',

但是,如果我将 dataType 更改为 json,则服务器能够接收并生成某些内容,但客户端无法接收到响应。

              cache: false,
              success: function(data, status, response) {
                alert(response);
            },
              error: function(request,status,response){
                    alert("Error: "+request.status+","+request.statusText);  
              }
            }); 
                return false;   
      }));  
    });  
</script>

【问题讨论】:

  • 您的防火墙上的 8080 端口是否畅通?
  • 使用像“services/web?wsdl/Authen”这样的相对路径而不是完整路径。
  • 是的,我的防火墙和主机防火墙上的 8080 端口都已解锁。

标签: javascript ajax


【解决方案1】:

尝试使用相对 URI,

例如更改:

url:"http://localhost:8080/services/web?wsdl/Authen"

url:"/services/web?wsdl/Authen"

在你的 ajax 请求中

【讨论】:

  • 但我需要连接到另一个具有不同 IP 的主机?我不需要连接到我的本地主机..
  • 在这种情况下,请查看 CORS,stackoverflow.com/questions/10881868/…
  • 我也这么看,但我没用PHP?我的主机使用axis2进行网络服务。
猜你喜欢
  • 1970-01-01
  • 2017-12-23
  • 1970-01-01
  • 2022-01-17
  • 2019-03-01
  • 2015-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多