2011-07-30 3 views
0

jquery-1.5.2.js를 사용하여 웹 응용 프로그램을 개발 중입니다. 업로드하려는 서버는 JSON 형식입니다. 4 개의 변수를 서버에 업로드하려고하는데 오류가 발생합니다. 여전히, 아래의 제안을 사용하여JSON을 사용하여 여러 데이터 업로드 - jQuery. 왜 일하지 않는거야?

--Updated 코드 그래도 작동하지 :

image= JSON.stringify(imageEncode, replacer); 
name = JSON.stringify(name, replacer); 
id = JSON.stringify(id, replacer); 
comments = JSON.stringify(comments, replacer); 

function data_post(){ 
$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    datatype: "json", 
    url: "example/new.json", 
    data: "{'image': '" + image + "', 'name': '" + name + "', 'id': '" + id + "', 'comments': '" + comments + "'}", 
    success: function() { 
     alert('Successfully uploaded'); 
    }, 
    error: function() { 
     alert('Error on upload'); 
    } 
});} 

이유는 아직 메시지에 "업로드에 오류"어떻게해야합니까 다음과 같이 내 코드는?

+0

@mu 오류는 textStatus : "error thrown"및 textStatus : "Not Found"를 반환합니다. 이것은 애플 리케이션에 의해 매우 도움이되지 피드백입니다. – tasanoui

+0

사실 그것은 도움이된다.'example/new.json'으로 무엇을해야할지 모르기 때문에 당신은 서버로부터 404를 얻고있다. –

답변

0

오류는 "찾을 수 없음"입니다. 즉, 서버에 example/new.json 처리기가 설정되어 있지 않습니다. 서버 소프트웨어를 구성하여 example/new.json과 같은 URL로해야 할 일을 알고 싶다면 url 옵션의 절대 경로를 사용하여 JavaScript가 실행될 때의 위치를 ​​신경 쓸 필요가 없도록해야합니다. /example/new.json가 도움이됩니다. JSON 그것을 인코딩 할 필요가 없습니다

$.ajax({ 
    data: { image: image_data, comments: comments, //... 
    //... 
}); 

자신이 그와 jQuery를 거래를하자 :

또한, $.ajaxdata 옵션은 단순한 객체가 될 수 있습니다.

+0

그래서 stringify 메서드를 사용할 필요가 없다고 제안하고 있습니까? 사실 서버에 관한 정보는 서버 개발자가 제공 한 URL이며 응용 프로그램에서 액세스해야합니다. 나는 그런 것처럼 보입니다 : http://theURL.com/people/1/photo/new – tasanoui

+0

@ tasanoui : 보통 당신은 데이터를 스스로 문자열로 지정할 필요는 없지만 그건 그냥 제쳐두고 있습니다. 진짜 문제는 서버 소프트웨어에 따라''/ people/1/photo/new ''(또는''/ people/1/photo/new.json ''일 가능성이 높습니다. 쪽으로). –

+0

네, 맞습니다. 당신이 제안한대로해야 할 URL이 진짜 문제입니다. 그러나 지금 내가 성공적으로 무언가를 업로드 할 수있을지라도 서버의 페이지로 이동하면 아무 것도 실제로 존재하지 않습니다! – tasanoui

0

서버 오류가 있지만 thiscodeis에서 제안 할 수있는 한 가지 오류가 있습니다. 데이터가 문자열 화되었는지 확인하십시오. base64EncodeImage은 용의자이지만 다른 사람도 확인하십시오. 유효한 JSON을 보내야합니다. 서버에서 무엇인가를 받고 있습니까?

+0

불행히도 서버에서 아무것도 수신하지 못합니다. 데이터를 어떻게 문자열화할 수 있습니까? – tasanoui

0

"데이터"json을 확인하십시오. 제공된 코드는 다음을 사용하는 경우 작동합니다.

data: "{'image': '" + base64EncodeImage + "','name': '" + photoName "',... 
+0

조언을 주셔서 감사합니다, 나는 지금 이것을 사용하지만 여전히 작동하지 않습니다. – tasanoui

관련 문제