0

私は次の詳細でajaxリクエストを行っています:

Request URL:http://localhost:8080/MyWebService/cars/70ced046-3061-4d9d-b9ce-7d1291d5b5c0
Request Method:DELETE
Status Code:200 OK

Request Headers
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:no-cache
Content-Type:application/json
Host:localhost:8080
Origin:http://localhost:8080
Pragma:no-cache
Proxy-Connection:keep-alive
Referer:http://localhost:8080/MyWebService/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko)     Chrome/20.0.1132.47 Safari/536.11
X-Requested-With:XMLHttpRequest

Response Headers
Content-Length:36
Content-Type:application/json
Date:Tue, 10 Jul 2012 10:18:45 GMT
Server:Apache-Coyote/1.1

ただし、ajax呼び出しは、次のxhr、status、およびerrorオブジェクトを含むエラーを返します。

function(request, status, error) 

>status
"parsererror"

>error
SyntaxError
arguments: Array[0]
get message: function () { [native code] }
get stack: function () { [native code] }
set message: function () { [native code] }
set stack: function () { [native code] }
type: "unexpected_token_number"
__proto__: Error

>request
Object
abort: function ( statusText ) {
always: function () {
complete: function () {
done: function () {
error: function () {
fail: function () {
getAllResponseHeaders: function () {
getResponseHeader: function ( key ) {
isRejected: function () {
isResolved: function () {
overrideMimeType: function ( type ) {
pipe: function ( fnDone, fnFail, fnProgress ) {
progress: function () {
promise: function ( obj ) {
readyState: 4
responseText: "44550569-871d-49ae-8583-f07ee3a07832"
setRequestHeader: function ( name, value ) {
state: function () {
status: 200
statusCode: function ( map ) {
statusText: "OK"
success: function () {
then: function ( doneCallbacks, failCallbacks, progressCallbacks ) {
__proto__: Object

応答が整数またはその他のjsonの場合、呼び出しは正常に機能し、success関数に入ります。ただし、応答が文字列(44550569-871d-49ae-8583-f07ee3a07832)の場合、エラーが発生します。これを修正する方法について何か提案はありますか?

4

2 に答える 2

1

応答がJSONであると期待しているため

Content-Type:application/json

javascriptを呼び出すajax部分を貼り付けて、より多くの情報を提供できるようにします。

于 2012-07-10T10:52:58.730 に答える
0

問題は、サーバーにapplication/jsonを返すように強制していたサーバー側にありました。

@RequestMapping(method = RequestMethod.DELETE, value = "/cars/{id}", produces="application/json")

これにより、次の応答ヘッダーが生成されます。

Response Headers
Content-Length:36
Content-Type:application/json
Date:Tue, 10 Jul 2012 10:18:45 GMT
Server:Apache-Coyote/1.1

「produces="application / json"」の部分を削除すると、次のヘッダーが返されます。

Content-Length:36
Content-Type:text/plain;charset=ISO-8859-1
Date:Wed, 11 Jul 2012 06:08:00 GMT
Server:Apache-Coyote/1.1
于 2012-07-11T06:24:50.310 に答える