【问题标题】:Express Endpoint Giving a 404Express 端点提供 404
【发布时间】:2016-03-01 12:27:36
【问题描述】:

我在 Jquery 中提交表单后调用了一个快速端点。因此,当表单提交时,它会调用 signUpUser(value),然后向 express 服务器发起 ajax 请求。

对 /signup 的调用导致 404,我以为我正确设置了端点。

它给出 404 的任何原因?我已经尝试过 GET/POST 和其他一些迭代。

$(document).ready(function(){
	$('#signupForm').submit(function() {
		console.log("here");
		console.log("yup");
		var value=$("#email").val();
		signUpUser(value);
	});


	var signUpUser = function (value){
		console.log("yaaa");
		$.ajax({
			type:"GET",
			url:"/signup"
		    })
			.done(function(){
				window.location='/confirmation.html';
			})
			.fail(function(){
				alert('An error occurred while trying to sign up. Please try again.')
			});
	};
});

var express = require('express');
var app = express();
var cors = require('cors');
var path = require('path');
var bodyParser = require('body-parser');

var http = require('http');
var fs = require('fs');

app.set('port', (process.env.PORT || 5000));

app.use(express.static(__dirname + '/public'));

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

app.use(cors());  

var router = express.Router();  

app.get('/', function(req, res) {
    res.sendFile(path.join(__dirname + '/index.html'));
});

app.get('/thesis.html', function(req, res) {
    res.sendFile(path.join(__dirname + '/thesis.html'));
});

app.get('/confirmation.html', function(req, res) {
    res.sendFile(path.join(__dirname + '/confirmation.html'));
});

app.get('/about.html', function(req, res) {
    res.sendFile(path.join(__dirname + '/about.html'));
});

app.post('/signup', function (req, res) {
	$.ajax({
			type:"POST",
			url:"https://us11.api.mailchimp.com/3.0/lists/8085fb931b/members",
			user: 'anystring:XX',
			header: 'content-type: application/x-www-form-urlencoded',
	        data: { "email_address": "ttttt@ssssssss.com",
	                            "status": "subscribed"
	              }
		    })
			.done(function(){
				window.location='/confirmation.html';
				res.send(200);
			})
			.fail(function(){
				alert('An error occurred while trying to sign up. Please try again.')
	});
});
 <form id="signupForm" ng-controller="formController">
                      <fieldset>
                      <input type="test" id="email" name="field1" id="field1" ng-model="email">
                      <input type="submit" value="Create Profile">
                      </fieldset>
                    </form>

【问题讨论】:

    标签: javascript jquery ajax express


    【解决方案1】:

    您尝试访问的端点 /signup 被声明为 POST 端点。 ajax 请求中的 type 属性是 GET。您收到 404 是因为您尝试向不存在的 GET 端点发出请求。

    【讨论】:

      猜你喜欢
      • 2020-02-17
      • 2021-04-23
      • 1970-01-01
      • 2021-05-08
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 2018-02-19
      • 2019-12-16
      相关资源
      最近更新 更多