2012-02-08 11 views
2

Webページからサーバーに送信されたJSON文字列を取得するのには苦労しています。 WebページでjQuery AjaxのTwitterの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); 
     } 

を、私のScalaのコードでは、なります

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"); 
関連する問題