java ajax的url_通过基于域名的URL访问Java Spring服务时,jQuery .ajax调用返回错误

我的应用程序的HTML5,jQuery Mobile前端与Java服务器(Spring,Hibernate,MySQL)进行了对话。该应用程序可以在我的笔记本以及QA环境中正常工作。在QA上,我使用服务器的IP地址访问应用程序。

当我在Live环境中托管应用程序(与QA相同的服务器,但在Tomcat中是一个不同的Web应用程序)并尝试使用具有域名的URL访问它时,应用程序中的$ .ajax调用会返回错误。

其中一个电话如下:

$.ajax({

type : "GET",

url : "http://www.smartcloudlearning.mobi:9080/SmartCloudLearningMobi/rest/resource/getResourceTypes",

cache : false,

async : false,

dataType : 'json',

success : function(rTypes) {

Alert("success!");

},

error : function(XMLHttpRequest, textStatus, errorThrown) {

alert("An error has occurred making the request: " + errorThrown);

}

});我在Firefox中遇到以下错误:

An error has occurred making the request: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: http://www.smartcloudlearning.mobi/js/jquery-1.7.1.min.js :: :: line 4" data: no]Chrome中出现以下错误:

An error has occurred making the request: Error: NETWORK_ERR: XMLHttpRequest: Exception 101在服务器日志中,我看到所请求的Spring服务已成功调用,但看起来客户端没有收到数据!

如果我点击了网址

http://www.smartcloudlearning.mobi:9080/SmartCloudLearningMobi/rest/resource/getResourceTypes直接在浏览器中,我得到预期的结果!我意识到这是由于我如何将Apache的服务器请求转发给Tomcat。

以下是Apache / httpd服务器的httpd.conf文件中的行:

ProxyPass /SmartCloudLearningMobi http://www.smartcloudlearning.mobi:9080/SmartCloudLearningMobi

ProxyPassReverse /SmartCloudLearningMobi http://www.smartcloudlearning.mobi:9080/SmartCloudLearningMobi有谁能告诉我这里有什么不舒服吗?非常感激!

我设法解决了这个问题:

浏览器在.ajax调用时发生错误,因为我的URL中有端口号。当我从我的QA URL创建“实时”网址时,端口号得到了延续。当我从.ajax呼叫的URL中删除端口号时,呼叫开始返回成功!

Jason Foglia,你的陈述“......还有港口......”推动我去探索这个角度......非常感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值