Я пытаюсь сделать запрос POST с использованием полимерного ядра-ajax для сервера runnung golang. После большого поиска (потому что я новичок в этом материале), я закончил со следующим кодом. Кроме того, запрос GET работает идеально. Параметры POST я не понимаю, как пройти с помощью core-ajax.Отправьте запрос на сервер golang с использованием полимерного ядра-ajax?
<polymer-element name="register-user" attributes="url">
<template>
<core-ajax id="ajaxSubmit" url="{{url}}" contentType="application/json" handleAs="json" method="post" on-core-response="{{response}}"></core-ajax>
<style type="text/css">
</style>
</template>
<script>
Polymer({
buttonListener: function() {
var data = '{"Name":"'+ this.name +'", "Email":"'+ this.email +'"}';
this.$.ajaxSubmit.data = data;
this.$.ajaxSubmit.go();
console.log(data);
},
response: function(oldValue){
console.log(this.response);
}
});
</script>
</polymer-element>
выше код возвращает 500 (Internal Server Error)
однако, когда я сделать запрос POST с помощью завивки ИЭ
curl -i -H 'Content-Type: application/json' -d '{"Name":"Batman",
"Email":"[email protected]"}' http://so.me.ip.ad:8080/register
он работает, как он должен и возвращает
HTTP/1.1 200 OK
Content-Type: application/json
X-Powered-By: go-json-rest
Date: Wed, 29 Apr 2015 05:40:15 GMT
Content-Length: 117
{
"id": 3,
"name": "Batman",
"email": "[email protected]",
"createdAt": "2015-04-29T05:40:15.073491143Z"
}
также, у меня есть набор промежуточного CORS на уровне
api.Use(&rest.CorsMiddleware{
RejectNonCorsRequests: false,
OriginValidator: func(origin string, request *rest.Request) bool {
return origin == "http://0.0.0.0:8000"
},
AllowedMethods: []string{"GET", "POST", "PUT"},
AllowedHeaders: []string{
"Accept", "Content-Type", "X-Custom-Header", "Origin"},
AccessControlAllowCredentials: true,
AccessControlMaxAge: 3600,
})
Что я делаю неправильно? Любая обратная связь будет очень полезной! . Благодаря^^
Edit: здесь немного больше информации, если это может помочь ..
браузеров обычно также отправлять заголовки, как «User-Agent» и «Referer» и те, которые не перечислены разрешенные заголовки в вашем CORS middelware - возможно, вот в чем проблема? – ain
@ain я добавил «User-Agent» и «Referer» как AllowedHeaders, но все равно получаю 500 в ответ :( –
Что вы делаете в пакетах? Попробуйте сбросить (на сервере Go) полный запрос (например: все заголовки и содержимое), чтобы проверить, что отличается между вашим запросом 'curl' и вашим запросом полимера. – LeGEC