gpt4 book ai didi

javascript - 有一个接收帖子的 go web 服务,但不清楚如何将响应发送回 jquery

转载 作者:IT王子 更新时间:2023-10-29 02:22:24 26 4
gpt4 key购买 nike

早上好

我有一些 go 代码接收 json post 并做一些事情,但我想将结果或消息发送回 jquery。

主要包

import (
"fmt"
"log"
"net/http"
"encoding/json"
"os/exec"
"strings"
)
type Deploy struct {
Environmentid string `json:"environmentid"`
Versionid string `json:"versionid"`
Dtp string `json:"dtp"`
}
func deploy(rw http.ResponseWriter, req *http.Request) {
if origin := req.Header.Get("Origin"); origin != "" {
rw.Header().Set("Access-Control-Allow-Origin", origin)
rw.Header().Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE")
rw.Header().Set("Access-Control-Allow-Headers",
"Accept, Content-Type, Content-Length, Accept-Encoding, X-CSRF- Token, Authorization")
}
// Stop here if its Preflighted OPTIONS request
if req.Method == "OPTIONS" {
return
}
if req.Method == "POST" {
d := Deploy{}
err := json.NewDecoder(req.Body).Decode(&d)
if err != nil {
panic("Can't decode Json received in post")
}
fmt.Println("Deploy: " + d.Environmentid + "," + d.Versionid + "," + d.Dtp)
// Run command
cmd := exec.Command("/bin/myscript.sh", strings.Split(fmt.Sprintf("-e %s -v %s", d.Environmentid, d.Versionid), " ")...)
cmdOut, cmdErr := cmd.Output()
if cmdErr != nil {
panic(cmdErr)
}
fmt.Println(string(cmdOut))
}

我现在拥有的jquery:

 $.ajax({
type: 'POST',
url: url,
cache:false,
crossDomain: true,
contentType: 'application/json; charset=utf-8',
data: jsonData,
dataType: 'json',
success:function(result) {
$('#target').html('Request was sent successfully...');
console.log(result);
},
error:function(xhr,status,error) {
//alert(error);
}
});

我看到我发送的 3 件东西很好。
我想我看到了一些对 $.ajax 回调选项的引用。我猜这允许我输入一个函数名称来接收响应。如何从 go 服务器接收成功或错误的 json 响应以及如何将响应从 go 服务器发送到此回调的示例将不胜感激。

最佳答案

在您的 ajax 调用中,您已经指定了一个回调来接收响应; success就是这样,它会收到服务器的http.ResponseWriter提供的数据。

如果您的意思是在 http 请求/响应周期完成后,您希望服务器在稍后的某个时间向客户端发起消息,那么您需要查看 websockets。

关于javascript - 有一个接收帖子的 go web 服务,但不清楚如何将响应发送回 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41939318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com