我正在尝试使用AJAX向我的服务器发出HTTP请求,但在我的服务器中会有两个curl请求。
其中一个会更快,我可以将JSON发送到前端吗?当我让另一个响应时发送另一个JSON? 我如何通过AJAX捕获第一个和第二个JSON?
谢谢。
答案 0 :(得分:1)
基本上Ajax中的第一个A用于同步,因此触发两个不同的请求并期望它们以并行方式运行是默认的。每个调用都有一个callbackhandler,如果两个请求都已完成,它可以检查页面上的某个状态对象。所以魔术将需要在回调处理程序中发生。
希望有所帮助。
答案 1 :(得分:1)
只有一个请求(通过AJAX触发),但有两个响应(从服务器)到该请求。有可能吗?
不,那是不可能的。 HTTP是请求 - 响应协议。每个请求都有一个响应。您的页面用户不需要知道已发送多个请求。他们不会注意到。
您可以修复服务器端。你的服务器端应该获取这两个请求,等待直到他们完成,然后从两个请求中编写一个答案。该组合答案可以发送给客户端。这样,客户端和服务器之间就有一个请求响应,服务器和第三方之间有两个请求 - 响应。
澄清一下,这是你得到的:
browser server 3rd party
request
|---------------->|
| | proxy
| | req1
| |----------------->|
| |<-----------------|
| | req2
| |----------------->|
| response |<-----------------|
|<----------------|
我最初的假设是你想做的事:
browser server 3rd party
request
|---------------->|
| | proxy
| | req1
| |----------------->|
| response |<-----------------|
|<----------------|
| |
| request |
|---------------->|
| | req2
| |----------------->|
| response |<-----------------|
|<----------------|
(根据您的要求)可能被压缩为:
browser 3rd party
request
|---------------->|
| response |
|<----------------|
|
| request
|---------------->|
| response |
|<----------------|
这可能会容易得多。
(开始在我的上一个答案中将其作为对你评论的评论,但它有点复杂,所以这就是为什么我把它作为一个单独的答案,对不起。)