SORU
21 Mart 2011, PAZARTESİ


nasıl node.js jQuery ile ajax çağrıları kullanmak için

Bu Stream data with Node.js ama bu soruya yeterince cevap hissetmiyorum benzer.

JQuery ajax çağrısı (olsun, yük, getJSON) bir sayfa ve node.js bir sunucu arasında veri aktarımı için kullanmaya çalışıyorum. Benim tarayıcıdan Adres vurdu ve 'Merhaba Dünya!", ama benim sayfadan bu çalıştığınızda, başarısız olur ve hiçbir tepki döndüğüm gösteriyor. Basit bir test ve bu test için örnek sayfa Merhaba Dünya: Kur

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>get test</title> 
</head>
<body>
    <h1>Get Test</h1>
    <div id="test"></div>

    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
    <script>
        $(document).ready(function() {
            //alert($('h1').length);
            $('#test').load('http://192.168.1.103:8124/');
            //$.get('http://192.168.1.103:8124/', function(data) {                
            //  alert(data);
            //});
        });
    </script>
</body>
</html>

ve

var http = require('http');

http.createServer(function (req, res) {
    console.log('request received');
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(8124);

CEVAP
21 Mart 2011, PAZARTESİ


Eğer basit bir test sayfasında yer alan diğer protokol/etki alanı/port daha Merhaba Dünya node.js örnek yapıyorsun etki alanları arası istekleri ve ihlal same origin policy Bu nedenle jQuery ajax çağrıları (ve yük) başarısız sessizce. Bu çalışma çapraz etki alanı JSONP temel biçimi kullanmalısınız. Örneğin node.js kod:

var http = require('http');

http.createServer(function (req, res) {
    console.log('request received');
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('_testcb(\'{"message": "Hello world!"}\')');
}).listen(8124);

ve istemci tarafı/jQuery JavaScript:

$(document).ready(function() {
    $.ajax({
        url: 'http://192.168.1.103:8124/',
        dataType: "jsonp",
        jsonpCallback: "_testcb",
        cache: false,
        timeout: 5000,
        success: function(data) {
            $("#test").append(data);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert('error '   textStatus   " "   errorThrown);
        }
    });
});

Ayrıca bu çalışma, örneğin reverse proxy kurarak veya web uygulama tamamen express gibi çerçeve ile inşa etmek için nasıl başka yolları da var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Washington

    Adam Washing

    12 Mayıs 2006
  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009
  • modica89

    modica89

    24 HAZİRAN 2007