如何使用java脚本向“go服务器”(go语言)发送json请求并接收json响应

2024-01-20

如何使用java脚本发布json请求并从“go服务器”(go语言)接收json响应

我试过这个

JavaScript 代码:

var calculate = { 
                operand1 : null,
                operand2 : null,
                operator : null
};

function UserAction() {
    var xhttp = new XMLHttpRequest();
    xhttp.open("POST", "http://localhost:8000/", true);
    xhttp.setRequestHeader("Content-type", "application/json");
    xhttp.send(calculate);
    var response = (xhttp.responseText);
    console.log(response);
}
UserAction();

go code:

package main
import ("fmt"
        "net/http"
        "encoding/json"
)


type answer struct {
    result float64
}


func index(w http.ResponseWriter, r *http.Request) {
    ans := answer{result: 30}
    fmt.Println(r)
    w.Header().Set("Content-Type", "application/json; charset=UTF-8")
    w.WriteHeader(http.StatusOK)
    if err := json.NewEncoder(w).Encode(ans); err != nil {
        panic(err)
    }    
}

func main() {
    http.HandleFunc("/",index)
    fmt.Println("Server online at port localhost:8000")
    http.ListenAndServe(":8000", nil)

}

我收到一条错误消息

加载失败http://本地主机:8000/ http://localhost:8000/:对飞行前请求的响应 未通过访问控制检查:无“Access-Control-Allow-Origin” 标头存在于所请求的资源上。原点“空”是 因此不允许访问。


Set Access-Control-Allow-OriginGolang 代码中的标头以允许请求表单跨源

func index(w http.ResponseWriter, r *http.Request) {
    ans := answer{result: 30}
    fmt.Println(r)
    w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
    w.Header().Set("Content-Type", "application/json; charset=UTF-8")
    w.Header().Set("Access-Control-Allow-Origin", "*")
    w.WriteHeader(http.StatusOK)
    if err := json.NewEncoder(w).Encode(ans); err != nil {
        panic(err)
    }    
}

您也可以使用 CORS 处理程序API https://github.com/rs/cors对于通过 main 内的路由器的每个请求。

func main() {
    mux := http.NewServeMux()
    mux.HandleFunc("/",index)
    handler := cors.Default().Handler(mux)
    fmt.Println("Server online at port localhost:8000")
    http.ListenAndServe(":8000", handler)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用java脚本向“go服务器”(go语言)发送json请求并接收json响应 的相关文章

随机推荐

  • 如何在.ejs视图引擎中打印cookie

    如何在 form 属性中打印 cookie 值 这是我正在尝试的代码 if req body remember me res cookie cookie email id req body email res cookie password
  • 如何检查一个数值是否是整数?

    我需要检查 Python 中的值是否为整数 请注意 我所说的整数是指像这样的值2 1 0 and 4 0000 然而0 4 and 2 3不是整数 我怎样才能做到这一点 float实例有一个is integer方法 它告诉你是否f int
  • 使用javascript将Base64解码为十六进制字符串

    需要使用 javascript 将 Base64 字符串转换为十六进制 例子 var base64Value oAAABTUAAg 需要转换方法 输出 解码数据 十六进制 A0000005350002 我知道这是正确的 因为我可以使用这个网
  • 添加对.net core csproj文件的依赖

    我正在使用 net core 的预发布版本 内部版本 1 0 0 preview3 004031 没有project json 文件 它们被csproj 替换 我找不到任何描述如何向 net core 的 csproj 添加依赖项的示例 可
  • 嵌入式 Jetty 9 一次处理一个请求

    我在嵌入式模式下使用 jetty 9 尽管我已经给出了threadpool500 的服务器仍然一次只处理一个请求 我缺少什么 Java代码 这里我期望所有线程名称日志可以即时打印 但它们是一张一张打印的 public class Main
  • iOS 音频单元 - 创建立体声正弦波

    周末我在学习如何在 iOS 上进行音频合成编程时遇到了障碍 我在 iOS 上进行开发已经好几年了 但我刚刚进入音频合成方面 现在 我只是编写演示应用程序来帮助我学习这些概念 我目前已经能够在音频单元的播放渲染器中构建和堆叠正弦波 没有任何问
  • LOCAL_LDLIBS 与 LOCAL_LDFLAGS

    Android NDK 指南解释了以下两个变量Adnroid mk如下 LOCAL LDLIBS 构建共享库或可执行文件时要使用的附加链接器标志列表 LOCAL LDFLAGS 构建共享库或可执行文件时要使用的其他链接器标志的列表 那么这两
  • 电子邮件地址中可以有撇号吗? [复制]

    这个问题在这里已经有答案了 可能的重复 电子邮件地址中允许使用哪些字符 https stackoverflow com questions 2049502 what characters are allowed in email addre
  • “弧形移植”和“弧形修补”有什么区别?

    arc help full less揭示了这一点graft graft revision Grafts revision and its dependencies if any onto your working tree force Do
  • 从 Python 字典中删除 None 值

    Python 新手 所以这可能看起来很愚蠢 我有两个命令 default a alpha b beta g Gamma user a NewAlpha b None 我需要使用用户中存在的值更新我的默认值 但仅适用于那些值不等于 None
  • 如何转义 YAML 字符串中的冒号和其他特殊字符?

    我有以下 YAML 片段 description API for bean consuming applications Examples painted pony lima bean 招摇编辑器 http editor swagger i
  • 函数调用的正则表达式?

    我只想从函数调用中提取一些引用的文本 并且想知道是否可以获得有关正则表达式的帮助 该字符串看起来像这样 MyFunction MyStringArg 本质上 我想扫描文件中任何调用 MyFunction 的行 然后捕获引号内的字符串文字 后
  • 使用正则表达式验证数学表达式?

    我想使用正则表达式验证数学表达式 数学表达式可以是这样的 可以为空 表示没有输入任何内容 如果指定 它将始终以运算符开头 or or or 并且后面总是跟着一个可以有的数字 任意位数且数字可以是小数 包含 数字之间 或整数 数字中没有 符号
  • 使用 if 语句检查 mousedown 是否有效?

    是否可以做这样的事情 if this mousedown true 我以为这会起作用 但事实并非如此 额外细节 我试图检查当鼠标离开特定位置时鼠标按钮是否按下DIV 因此如果用户在鼠标离开 div 时按住鼠标按钮 则执行此操作 否则执行此操
  • EditText 不接受数字输入

    我的 Android 应用程序中有一个 EditText 视图 我的 EditText 不采用整数值作为输入 但它采用所有其他值 以下是我的 EditText 视图
  • 对齐子图中的 ylabel

    我有几个子图 一个在另一个下 每个子图的 y 轴都标有不同的值 比如第一个是 1 5 第二个是 10 1000 等 所以结果是每个 ylabel 都会有不同的对齐方式 有没有办法来解决这个问题 例如 将所有 ylabel 向左对齐 或者还有
  • 为什么 eval 是邪恶的?

    我知道Lisp和Scheme程序员通常会这么说eval除非绝对必要 否则应避免 我已经看到了对几种编程语言的相同建议 但我还没有看到反对使用的明确论据列表eval 在哪里可以找到使用潜在问题的说明eval 例如 我知道以下问题GOTO在过程
  • 卷曲:连接被拒绝

    运行curl时出现以下错误 curl 7 连接127 0 0 1端口8080失败 连接 拒绝了 看起来很容易调试 但是 我没有找到如何解决它 文件中提到了地址127 0 0 1etc hosts 我在Ubuntu系统上使用curl版本7 4
  • 如何从 Sinch 应用仪表板删除上传的 APNS 证书?

    我们正在开发呼叫应用程序使用新奇SDK 我想从 Sinch Dashboard 中创建的应用程序中删除上传的 APNS 证书 我没有找到任何方法来从中删除现有的上传证书 NOTE 现在sinch在App上传的认证附近提供了 删除 选项 No
  • 如何使用java脚本向“go服务器”(go语言)发送json请求并接收json响应

    如何使用java脚本发布json请求并从 go服务器 go语言 接收json响应 我试过这个 JavaScript 代码 var calculate operand1 null operand2 null operator null fun