2012-02-08 1 views
2

웹 페이지에서 내 서버로 보낸 JSON 문자열을 얻는 데 어려움을 겪고 있습니다. 웹 페이지에서 jQuery Ajax 트위터에 Finagle 서버 호출

, 나는 다음을 수행하십시오 다음과 같이 서버 측에

$.ajax({ 
    type: "POST", 
    url: url, 
    data: JSON.stringify(formData), 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     // TODO: Listen for server ok. 
     alert(msg); 
     } 

, 내 스칼라 코드는 같습니다

import com.twitter.finagle.Service 
import com.twitter.finagle.builder.Server 
import com.twitter.finagle.builder.ServerBuilder 
import com.twitter.finagle.http._ 
import com.twitter.util.Future 
import java.lang.String 
import java.net.InetSocketAddress 
import org.jboss.netty.buffer.ChannelBuffers 
import org.jboss.netty.util.CharsetUtil.UTF_8 

/** 
* 
*/ 
object HttpServerExample { 
    def main(args: Array[String]) { 

    class EchoService extends Service[Request, Response] { 
     def apply(request: Request) = { 
     println(request.getContent()); 

     val response = Response() 
     response.setContentType(MediaType.Html, UTF_8.name) 
     val responseContent: String = "Thanks" 
     response.setContent(ChannelBuffers.copiedBuffer(responseContent, UTF_8)) 
     Future.value(response) 
     } 
    } 

    val echoServer: Server = ServerBuilder() 
     .codec(RichHttp[Request](Http())) 
     .bindTo(new InetSocketAddress("127.0.0.1",8080)) 
     .name("EchoServer") 
     .build(new EchoService()) 

    } 
} 

을 요청 내용이 비어있는 몇 가지 이유.

내가하는 AJAX 호출 변경하는 경우 :

$.ajax({ 
    type: "POST", 
    url: url, 
    data: formData, 
     success: function(msg) { 
     // TODO: Listen for server ok. 
     alert(msg); 
     } 

을 그럼 난 매개 변수로 데이터를 얻을 수 있습니다.

서버에서 JSON 문자열을 가져 오는 방법은 무엇입니까? 내가 잘못 보내거나 틀린 거니?

답변

2

대신에 :

$.ajax({ 
    type: "POST", 
    url: url, 
    data: JSON.stringify(formData), 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     // TODO: Listen for server ok. 
     alert(msg); 
     } 

지금 사용하고 있습니다 :

$.post(url, 
     JSON.stringify(formData), 
     function(msg) { 
     // TODO: Listen for server ok. If this is successfull.... clear the form 
     alert(msg); 
     }, 
     "json");