#php #post #polymer
#php #Публикация #polymer
Вопрос:
Я работаю над разделом в своем коде, который работает с Polymer. Я создал форму, которая должна отправлять сообщения в файл PHP в каталоге (с именем API), который взаимодействует с нашим SQL. Вместо успешной отправки данных post в register-wine.php
файл я получаю ошибку not found 404, которая сопровождается несколькими другими ошибками файла Polymer. Есть идеи, почему возникают эти ошибки?
Оскорбительный HTML-файл:
<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="../bower_components/paper-menu/paper-menu.html">
<link rel="import" href="../bower_components/iron-form/iron-form.html">
<link rel="import" href="../bower_components/iron-input/iron-input.html">
<link rel="import" href="../bower_components/paper-dropdown-menu/paper-dropdown-menu.html">
<link rel="import" href="../bower_components/paper-item/paper-item.html">
<link rel="import" href="../bower_components/paper-listbox/paper-listbox.html">
<link rel="import" href="shared-styles.html">
<dom-module id="wc-view2">
<template>
<style include="shared-styles">
:host {
display: block;
padding: 10px;
}
</style>
<div class="card">
<h1>Register Wine</h1>
<div left>
<!--- <wc-register id="wc-register-wine" method = "post" action="api/register-wine.php" ></div> --->
<div id ="register-wine-container">
<form is="iron-form" id="register-wine-form" method="post" disable-native-validation-ui action="../api/register-wine.php">
<h3>Insert Wine Data! </h3>
<paper-input-container>
<input is="iron-input" id = "inputProducer" name ="producer" type ="text" placeholder = "Producer" required>
<!---Can insert Icon for prettiness, but will later, lets get functionality-->
</paper-input-container>
<paper-input-container>
<input is="iron-input" id = "inputName" name ="wname" type ="text" placeholder = "Wine Name" required>
<!---Can insert Icon for prettiness, but will later, lets get functionality-->
</paper-input-container>
<paper-input-container>
<input is="iron-input" id = "inputGrape" name ="grape" type ="text" placeholder = "Grape (Optional)">
<!---Can insert Icon for prettiness, but will later, lets get functionality-->
</paper-input-container>
<paper-dropdown-menu label="Wine Style">
<paper-listbox class="dropdown-content" name = "wine_styles">
<paper-item>Sparkling White</paper-item>
<paper-item>Sparkling Rosé</paper-item>
<paper-item>Stil White</paper-item>
<paper-item>Still Red</paper-item>
<paper-item>Dessert</paper-item>
<paper-item>Fortified White</paper-item>
<paper-item>Fortified Red</paper-item>
</paper-listbox>
</paper-dropdown-menu>
<paper-input-container>
<input is="iron-input" id = "inputVintage" name ="vintage" type ="number" placeholder = "Vintage (YYYY)" required>
<!---Can insert Icon for prettiness, but will later, lets get functionality-->
</paper-input-container>
<paper-input-container>
<input is="iron-input" id = "inputCountry" name ="country" type ="text" placeholder = "Country" required>
<!---Can insert Icon for prettiness, but will later, lets get functionality-->
</paper-input-container>
<paper-input-container>
<input is="iron-input" id = "inputState" name ="state" type ="text" placeholder = "State/Province" required>
<!---Can insert Icon for prettiness, but will later, lets get functionality-->
</paper-input-container>
<paper-input-container>
<input is="iron-input" id = "inputRegion" name ="region" type ="text" placeholder = "Region (Optional)">
<!---Can insert Icon for prettiness, but will later, lets get functionality-->
</paper-input-container>
<paper-input-container>
<input is="iron-input" id = "inputSubRegion" name ="sRegion" type ="text" placeholder = "Sub-Region (Optional)">
<!---Can insert Icon for prettiness, but will later, lets get functionality-->
</paper-input-container>
<paper-input-container>
<input is="iron-input" id = "inputVintage" name ="vintage" type ="number" placeholder = "Alcohol Percentage (##)" required>
<!---Can insert Icon for prettiness, but will later, lets get functionality-->
</paper-input-container>
<button name="regWine" type="submit">Register Wine</button>
</form>
</div>
</div>
<div right></div>
</div>
</template>
<script language = "javascript">
window.onbeforeunload = function(){
return 'Are you sure you want to leave?';
};
</script>
<script>
Polymer({
is: 'wc-view2'
});
</script>
</dom-module>
Вот моя файловая структура:
Структура файла
Вот ошибка и то, что содержит ошибка (после первой строки):
iron-request.html:304 POST http://localhost:8080/api/register-wine.php 404 (Not Found)
send @ iron-request.html:304
generateRequest @ iron-ajax.html:455
submit @ iron-form.html:251
_onSubmit @ iron-form.html:262
handler @ polymer.html:561
Комментарии:
1. Настроен ли ваш локальный веб-сервер для запуска PHP? Что произойдет, если вы перейдете непосредственно к нарушающему пути?
2. Да, php в основном работает в фоновом режиме, я поместил в него echo, и, похоже, он работает.
3. Что это значит, какой php-скрипт выполняется в фоновом режиме и в какой php-скрипт вы вставили echo. В сообщениях об ошибках говорится, что ваш веб-сервер вернул 404, что обычно означает, что он не смог найти ваш скрипт.
4. Ну, когда я перехожу к нему напрямую, мой браузер просто загружает страницу. Я протестировал обычную страницу php, которая что-то повторяет, и, похоже, это работает. Итак, мой локальный веб-сервер может запускать php. Как вы думаете, может быть, polymer неправильно маршрутизирует сообщение?
5. Я предлагаю изолировать вашу проблему, удалив Polymer из уравнения: создайте HTML-страницу с небольшим количеством кода jQuery, который отправляет AJAX-запрос на ваш URL-адрес API, а в обратном
console.log
вызове что-то возвращается с сервера. Как только вы убедитесь, что это работает, загляните в Polymer.