通过JavaScript或jQuery将值通过Curl请求发布到Golang中。

huangapple go评论96阅读模式
英文:

Posting values to golang via curl request in javascript or jquery

问题

这是我的来自PHP的curl post请求。它完美地工作。

extract($postFieldsArr);
$json_id = json_encode($postFieldsArr);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://localhost:9000/GoogleSimpleReports');
curl_setopt($ch, CURLOPT_PORT, 9000);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_id);
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Content-Length: ' . strlen($json_id))                                                                       
);                                                                                                                   

$result = curl_exec($ch);

类似地,我正在尝试从JavaScript向Golang执行curl post请求,这是正确的语法吗?如何设置setRequestHeaderAuthorization

$.ajax({
    url: 'https://localhost:9000/GoogleSimpleReports',
    beforeSend: function(xhr) {
        xhr.setRequestHeader("Authorization", "Bearer 6QXNMEMFHNY4FJ5ELNFMP5KRW52WFXN5");
    },
    success: function(data){
        alert(data);
        //处理JSON数据等
    }
});
英文:

This is my curl post from php.This works perfectly

extract($postFieldsArr);
$json_id = json_encode($postFieldsArr);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://localhost:9000/GoogleSimpleReports');
curl_setopt($ch, CURLOPT_PORT, 9000);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_id);
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
	'Content-Type: application/json',                                                                                
	'Content-Length: ' . strlen($json_id))                                                                       
);                                                                                                                   

$result = curl_exec($ch);

Similarly i am trying to perform a curl post from javascript to golang, is this the correct syntax ? How do i set this setRequestHeader Authorization ?

$.ajax({
        url: 'https://localhost:9000/GoogleSimpleReports',
        beforeSend: function(xhr) {
             xhr.setRequestHeader("Authorization", "Bearer 6QXNMEMFHNY4FJ5ELNFMP5KRW52WFXN5")
        }, success: function(data){
            alert(data);
            //process the JSON data etc
        }
})

答案1

得分: 1

要设置请求头,您需要使用Write函数,该函数提供一个接受keyvalue作为参数的Get()函数。

func (h Header) Set(key, value string)

要设置请求头,您应该使用以下代码:

writer.Header().Set("Content-Type", "application/json")

其中,writer的类型是http.ResponseWriter

英文:

To set the request header you have to use the Write function which provide a Get() function accepting a key and a value as parameter.

func (h Header) Set(key, value string)

To setup the request header you should use:

writer.Header().Set("Content-Type", "application/json")

where writer is of type http.ResponseWriter.

huangapple
  • 本文由 发表于 2016年2月10日 19:59:44
  • 转载请务必保留本文链接:https://go.coder-hub.com/35314655.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定