簡體   English   中英

發送Ajax請求到遠程Node.js服務器

[英]Send ajax request to remote node.js server

我有簡單的nodejs服務器(包括CORS):

var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var port = 8001;
http.listen(port,function () {
    console.log('listening on:'+ port);
});
app.use(function (req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8000');
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
    res.setHeader('Access-Control-Allow-Credentials', true);
    next();
});
app.post('/getSockets', function (req,res,next) {
   console.log(req.body);
});

和簡單的ajax請求

 $.ajax({
                type: "POST",
                url: "http://localhost:8001/getSockets",
                data: "Hello world",
                success: function (data, textStatus, XMLHttpRequest) {
                    console.log(data);
                    console.log("success!");
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    console.log(XMLHttpRequest.status);
                }
            });

但是我有一個錯誤404,找不到localhost:8001 / getSockets

404錯誤表示網址不存在或無法訪問

更改此行:

res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8000');

對此:

res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8001');

您只允許ajax請求訪問端口8000上的資源,您應該將其更改為8001或不指定端口。

res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8000');

另請參閱將CORS與端口配合使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM