当前位置: 首页 > 面试题库 >

AJAX响应在C ++中无效,但在Apache中有效

於乐
2023-03-14
问题内容

我想制作一个用C
++编写的服务器来支持我的游戏。我学习了套接字的基础知识,并编写了一个运行良好的基本聊天程序。现在,我想创建一个像Apache这样的HTTP服务器,但是仅用于AJAX请求-
响应部分。

我认为刚开始时,我复制了一个Apache响应文本,并使用C ++服务器程序发送了准确的响应。

问题是浏览器(Firefox)连接到apache,并且一切正常,除了所有请求均得到正确的响应。

但是,如果我使用C ++客户端发送此消息,则FireBug告诉我响应状态为OK(200),但没有实际的响应文本。(这怎么可能?)

此响应文本与apache发送的文本完全相同。我做了一点点比较,它们是相同的。

php文件至此是原始回复

<?php echo "AS";echo  rand(0,9); ?>

以及原始的源代码

  • Socket.h http://pastebin.com/bW9qxtrR
  • Socket.cpp http://pastebin.com/S3c8RFM7
  • main.cpp http://pastebin.com/ckExuXsR
  • index.html http://pastebin.com/mcfEEqPP <这是请求者文件。
  • ajax.js http://pastebin.com/uXJe9hVC
  • Benchmark.js http://pastebin.com/djSYtKg9

不需要jQuery。

main.cpp中有很多垃圾代码,例如main3和main4函数,这些不影响结果。

我知道C ++代码中的响应内容不是很好,因为连接关闭不是最好的。我稍后将解决此问题,我想先发送成功回复。


问题答案:

问题:通过Apache在端口80上提供index.html。浏览器将其加载并开始发送请求。请求文件(程序)在另一个端口8888端口上,该端口已经是
另一台服务器 ,该 服务器 不启用ajax(不知道为什么)来获取发布数据。该程序仍可以与 远程 服务器通信,但看不到响应。

整整一天后,我用提琴手程序进行了很多测试,捕获了响应,然后这种方法对我有所帮助。

我使用了提琴手程序来捕捉好答案,并捕捉坏的答案。他们是一样的。在此之后,我关闭了我的套接字应用程序,并强制提琴手自动响应,并且“错误”答案中的答案仍然无效。因此,在那之后,我用好事代替了坏事,没有任何障碍。在:8888端口上,带有好文字的错误答案仍然很糟糕,但是在原始:80端口上,另一个很好,但是它们绝对是相同的,并且相同的程序将其发送给了我(提琴手),我认为如果响应了,则会丢失一些内容不是在同一服务器地址上(甚至不是同一端口)。

在此之后,我认为可能是缺少头文件,或者类似的东西。所以我将Apache配置为侦听index.html中加载的80端口。此后,我关闭了apache服务器,将端口更改为8888,然后运行ajax请求,我意识到它们是错误的,但是它们是由apache发送的,并且所有previorus请求(在同一端口上)都很好。所以问题只在于ajax的东西:D

非常感谢Tony Lee的 Fiddler 建议。

实际上没有解决方案,但是有一个答案说明问题存在的原因。



 类似资料:
  • 我想用C#做一个简单的HTTP请求,但是有些东西不工作,我得到的是< code>403 Forbidden状态代码。 当我尝试在邮递员中执行相同的请求时,一切正常。我尝试运行 Fiddler 并查看邮递员发送的所有标头。我复制粘贴了所有这些,但我仍然在 C# 代码发送的请求中得到了 。 有人能解释一下为什么这不起作用吗?同样的标题,同样的一切。 我用“example.com”替换了 url,因为我

  • 问题内容: 如上所述,我遇到了@ font-face无法在IE9中显示的问题,尽管它在包括IE8及以下版本的所有其他浏览器中都可以正常显示。此外,在我的计算机上本地查看时,IE9会显示字体,而不会完全显示。 使用的代码是: 任何人都知道为什么会发生这种情况吗? 问题答案: 没有答案,只是确认:我有类似的问题。 字体可以使用IETester和原始浏览器在除IE9之外的所有其他IE版本中使用。更改文档

  • 我正在通过安全连接测试客户端服务器。 我将密钥库证书加载到SOAPUI中,并能够连接到服务器的组件。但是,当我在JMeter v2中配置相同的密钥库证书时。13,我得到了这个错误: 响应代码:非HTTP响应代码:javax。网ssl。SSLHandshakeException响应消息:非HTTP响应消息: 我已经参考了发现的许多建议,并已配置路径到我的密钥库和密码在杰米的system.proper

  • 我一直在努力理解并在网络上搜索答案,但我似乎无法在页面上显示答案 这是我的片段,它在列表中循环使用Thymeleaf: 根据ajax提供的id过滤产品列表的控制器 最后是Ajax 这是一个导航栏,用于选择发送给ajax调用的url 现在问题是,响应是百分之百在html中的,我将整个片段作为响应,但页面似乎根本没有显示任何内容。例如,如果我将响应更改为。文本(响应)相反,我能够在正确的位置将整个片段

  • 问题内容: 我有一个运行在网页上的脚本,该脚本需要使用JQuery $ .ajax方法(当前使用jquery 1.7.2)将多个GET请求提交到不同域上的服务端点。我的ajax调用可以在IE(9、10、11)中运行,但在Firefox和Chrome中显示401未经授权的响应失败。Chrome中的其他错误消息的一部分是“访问此资源需要完全身份验证”。 我的ajax调用是这样设置的(这些失败的请求的d

  • 我可以发送帖子并从邮递员那里获得请求,但当我实际从浏览器发送请求时,它无法获取记录,并在控制台中显示错误“body:{ error:“Collection ' undefined ' not found”}”。 已尝试Get和Post请求,它们都在POSTMAN中提供数据作为响应,但在浏览器中不起作用。显示错误“body:{ error:“Collection ' undefined ' not