Мне трудно отличить вызов ajax от других вызовов в ExpressJS.
Насколько я понимаю, я могу использовать request.accepts('json')
для идентификации json-запроса?
Проблема в том, что видимо каждый звонок принимает все!
app.get( '*', function(request, response, next ) {
console.log('request accepts:')
if( request.accepts( 'json' ) ){
console.log( '--> accepts json' )
}
if( request.accepts( 'html' ) ){
console.log( '--> accepts html' )
}
if( request.accepts( 'blah' ) ){
console.log( '--> accepts blah' ) // this does not show up
}
if( request.accepts( 'application/json' ) ){
console.log( '--> accepts json2' )
}
next()
} )
Если я просто захожу на страницу, она принимает json и html.
Если я попытаюсь использовать $.getJSON( ... url ... )
, он также принимает json и html.
Headers:
Browser: "Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
Ajax: "Accept application/json, text/javascript, */*; q=0.01"
Я не эксперт в заголовках accepts, но кажется, что проблема может заключаться в части */*
.
Как я могу определить правильный (или, возможно, первый) тип accept в ExpressJS? В качестве альтернативы: как отличить запрос JSON от обычного посещения страницы?
/path/to/server?format=json
- person charlietfl   schedule 16.07.2016"/api/"
. вообще странная проблема - person charlietfl   schedule 16.07.2016$.ajaxSetup
для установки пользовательского заголовка на основеdataType
в обратном вызовеbeforeSend
. - person charlietfl   schedule 16.07.2016