首页 > 解决方案 > 对节点 JS 服务器的 AJAX POST 请求无法从 IPAD 或 IPHONE 工作

问题描述

我有一个在 Windows 10 操作系统上运行网站的 Apache 服务器。在按钮上单击网站,我向 Node JS 中的 Express 服务器发出 AJAX POST 请求,以运行一些代码并返回 JSON 字符串。这在我的 Windows 10 操作系统上运行良好。

当我在我的 IPAD 或 IPHONE 上单击网站上的按钮时,没有任何反应。在命令提示符下,我看不到任何到达 Express 服务器的控制台日志。

条件:

我在这里想念什么?(接下来,一些代码) Express Server JS

var express = require('express');
var path = require('path');
var app = express();
var cors = require("cors");
var bodyParser = require('body-parser');
const port = 8000;

app.use(bodyParser.json());
app.use(cors());

app.post('/FileName', function (req, res) {
    
    var Fname = req.body.fname;
    console.log("received filename: " + Fname);
    // Require the module
    var EasyFit = require('./dist/easy-fit.js').default;

    // Read a .FIT file
    var fs = require('fs');
    fs.readFile('C:/xampp/htdocs/ATP/FIT/' + Fname + '', function (err, content) {
    
        // Create a EasyFit instance (options argument is optional)
        var easyFit = new EasyFit({
        force: true,
        speedUnit: 'km/h',
        lengthUnit: 'km',
        temperatureUnit: 'celcius',
        elapsedRecordField: true,
        mode: 'list',
        });

        // Parse your file
        easyFit.parse(content, function (error, data) {

            // Handle result of parse method
            if (error) {
                console.log(error);
            } else {
                //res.send(JSON.stringify(data));
                res.send(data);
                console.log('Parse ok');
            }
        });   
    });
})

app.listen(port, '0.0.0.0');
console.log(`FIT app listening at http://localhost:${port}`);

客户端的 AJAX 请求 JS

$.ajax({
        cache: false,
        url: 'http://localhost:8000/FileName',
        type: 'POST',
        contentType: "application/json",
        data: JSON.stringify(data),                 
        success: function(result) {
            console.log('received fit in JSON');
            console.log(result);
            

    });

标签: javascriptjquerynode.js

解决方案


您可以使用如下命令找出您的 IP 地址:

ipconfig|findstr IPv4

然后将其替换为localhost

所以你会有一条线

url: 'http://192.168.1.131:8000/FileName',

而不是那个说localhost:8000


推荐阅读