415 不支持的媒体类型 Cowboy REST Ajax
415 Unsupported Media Type Cowboy REST Ajax
我在使用方法 POST 处理牛仔 REST 请求时遇到问题。如果 POST 通过提交表单内容完成,它工作正常,但当我使用 AJAX 将 POST 内容发送到服务器时它会响应。
错误响应是:
415 不支持的媒体类型
这是我的 content_types_provided 和 content_types_accepted
代码
content_types_accepted(Req, State) ->
Handler = [
{<<"text/html">>, handle_post_html},
{{<<"application">>,<<"json">>, []}, handle_post_html},
{{<<"text">>, <<"plain">>, []}, handle_post_html}],
{Handler, Req, State}.
content_types_provided(Req, State)->
Handler = [
{<<"text/html">>, parse_html},
{<<"application/json">>, parse_json},
{<<"text/plain">>, parse_plain_text}],
{Handler, Req, State}.
有人对这个案子有任何想法吗?
为什么要分开呢?
试一试:
content_types_accepted(Req, State) ->
Handler = [
{<<"text/html">>, handle_post_html},
{<<"application/json">>, handle_post_html},
{<<"text/plain">>, handle_post_html}],
{Handler, Req, State}.
content_types_provided(Req, State)->
Handler = [
{<<"text/html">>, parse_html},
{<<"application/json">>, parse_json},
{<<"text/plain">>, parse_plain_text}],
{Handler, Req, State}.
为了让牛仔能够理解通过XMLHTTPRequest(AJAX)发送的内容类型,使用方法POST,需要在JavaScript中添加headers信息如下:
<script language="javascript">
var content_types = {html:'text/html',json:'application/json',text:'text/plain',xml:'application/xml'};
$(document).ready(function(){
$('#btnPost').on('click', function(e){
e.preventDefault();
var href = 'http://localhost:8080/account-insert-12.html',
var method = 'post',
var resType = 'json'
var postedData = $('#form').serialize();
console.log(postedData);
$.ajax({
headers: {
'Accept': content_types[resType],
'Content-Type': content_types[resType]
},
url:href,
type: method,
dataType: resType,
data: postedData
}).done(function(res){
});
});
});
</script>
我在使用方法 POST 处理牛仔 REST 请求时遇到问题。如果 POST 通过提交表单内容完成,它工作正常,但当我使用 AJAX 将 POST 内容发送到服务器时它会响应。
错误响应是: 415 不支持的媒体类型
这是我的 content_types_provided 和 content_types_accepted
代码content_types_accepted(Req, State) ->
Handler = [
{<<"text/html">>, handle_post_html},
{{<<"application">>,<<"json">>, []}, handle_post_html},
{{<<"text">>, <<"plain">>, []}, handle_post_html}],
{Handler, Req, State}.
content_types_provided(Req, State)->
Handler = [
{<<"text/html">>, parse_html},
{<<"application/json">>, parse_json},
{<<"text/plain">>, parse_plain_text}],
{Handler, Req, State}.
有人对这个案子有任何想法吗?
为什么要分开呢?
试一试:
content_types_accepted(Req, State) ->
Handler = [
{<<"text/html">>, handle_post_html},
{<<"application/json">>, handle_post_html},
{<<"text/plain">>, handle_post_html}],
{Handler, Req, State}.
content_types_provided(Req, State)->
Handler = [
{<<"text/html">>, parse_html},
{<<"application/json">>, parse_json},
{<<"text/plain">>, parse_plain_text}],
{Handler, Req, State}.
为了让牛仔能够理解通过XMLHTTPRequest(AJAX)发送的内容类型,使用方法POST,需要在JavaScript中添加headers信息如下:
<script language="javascript">
var content_types = {html:'text/html',json:'application/json',text:'text/plain',xml:'application/xml'};
$(document).ready(function(){
$('#btnPost').on('click', function(e){
e.preventDefault();
var href = 'http://localhost:8080/account-insert-12.html',
var method = 'post',
var resType = 'json'
var postedData = $('#form').serialize();
console.log(postedData);
$.ajax({
headers: {
'Accept': content_types[resType],
'Content-Type': content_types[resType]
},
url:href,
type: method,
dataType: resType,
data: postedData
}).done(function(res){
});
});
});
</script>