我不知道我的标题是否正确表达,但我有以下问题:
我有一个自编写的Java Web服务器,可以处理传入的客户端请求。它适用于所有请求方法(GET,POST,HEAD,OPTIONS,DELETE,...)。当我使用 http 时,它也可以正常发送文件和内容。 当我通过 https 调用页面时,GET和POST也可以工作,但所有其他请求方法都不起作用(Javascript中没有任何更改,将请求发送到服务器...它只是用SSL运行)。我似乎无法找到为什么会这样的情况。添加SSL时,请求方法的工作方式是否有所不同?我认为这只是让沟通更安全的补充吗?我错了吗?
编辑:不同浏览器之间也存在差异...大多数人甚至没有发送请求,chrome已经到了readyState = 4 :(顺便说一下,我用Chrome 2.0测试过,Firefox 3.0.11,Opera 9.63,IE7,IE8,Safari 3.2.1。
希望有人能说清楚。
答案 0 :(得分:1)
请求方法应该像HTTP或HTTPS一样工作。
我们很难帮助你,因为
假设存在连接问题,我建议您在知名的Web服务器上试用客户端,看看它是否可以连接?问题可能出在客户端。
答案 1 :(得分:0)
问题在于对函数的调用!
该功能定义如下:
function getHead( url, targetDiv ){
// generate the HTTPREQUESTOBJECT ... let's call it 'req'
req.open( "HEAD", url, true );
// some more magic happens with the response
}
我改变了对函数的调用:
onclick="getHead( 'http://localhost/Home', 'optionsdiv' )
为:
onclick="getHead( 'localhost/Home', 'optionsdiv' )
第一个电话当然只适用于http,而不适用于https!所以切换使它工作:) 我发现另一种方法也是如下:我添加了一个像这样的try-catch:
try{
req.open( "HEAD", "https://"+url, true );
}
catch( err ){
req.open( "HEAD", "http://"+url, true );
}
在我的结尾几乎完美地工作,激发了一点点浏览器差异,这让我感到疯狂!