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

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • hoorahjencar

    hoorahjencar

    6 HAZİRAN 2007
  • Jonnyriddlin1

    Jonnyriddlin

    4 Ocak 2007