AJAX를 통해 제출하려고 할 때 %5Bobject%20Object%5D(404를 찾을 수 없음)
변수를 아약스를 통해 MySQL 쿼리를 실행할 PHP 스크립트로 전달하려고 합니다.하지만 "http://myurl/database/%5Bobject%20Object%5D" 오류와 함께 404 Not Found 오류가 계속 발생합니다.
제가 정의한 PHP 스크립트 대신 http://myurl/database/%5Bobject%20Object%5D로 데이터를 보내려고 하는 것 같습니다.이번 건은 정말 막막합니다.저는 절대 URL을 넣는 것이 효과가 있을 것이라고 생각했습니다.
아래는 제 코드입니다.어떤 도움이라도 주신다면 영원히 감사하겠습니다.
<script type="text/javascript">
function insertData()
{
var dataid= $('#dataid').attr('value');
var industry = $('#industry').attr('value');
var geolocation = $('#geolocation').attr('value');
$.post({
type: "POST",
url: "http://myURL/database/InsertData.php",
data: "dataid="+ dataid+"&industry="+ industry +"&geolocation="+ geolocation,
});
return false;
};
</script>
Andi가 말했듯이 $.post는 첫 번째 매개 변수로 URL 문자열을 예상합니다. 옵션 개체를 전달하려면 $.ajax를 사용해야 합니다.
당신이 전화하려고 할 때$.post(<option object>)
옵션 객체는 URL로 사용됩니다. 그 과정에서, 그것은 문자열에 캐스팅됩니다. (그리고 문자열에 캐스팅된 객체는[object <type>]
Javascript; 이 경우에는[object Object]
), URL로 인코딩됩니다(%5Bobject%20Object%5D
), 그리고, 그것은 a로 시작하지 않기 때문에./
프로토콜 이름은 상대 URL로 해석되며 현재 프로토콜, 도메인 및 경로로 접두사가 붙습니다.그러면 매개 변수가 더 이상 없으므로 빈 POST AJAX 요청이 해당 URL로 전송됩니다.
또 다른 문제는 당신이 사용하는 것입니다.&
매개 변수를 분리합니다. HTML에서만 수행해야 합니다. 여기서는 그냥 사용해야 합니다.&
(또는 Evan이 말했듯이, 데이터 객체는 인코딩 문제에 대해 생각할 필요가 없습니다.).val()
그리고..attr('value')
첫 번째 필드는 필드의 현재 값이고, 두 번째 필드는 페이지가 로드되었을 때 값이 무엇이었든 상관없습니다.
가장 간단한 방법은 다음과 같습니다.
function insertData() {
var data = $('#dataid,#industry,#geolocation').serialize();
$.post('http://myURL/database/InsertData.php', data);
return false;
}
이는 세 개의 필드가 동일하다고 가정합니다.name
그리고.id
$.companize가 사용하는 바와 같이name
매개 변수 이름입니다.
변경해야 합니다.$.post
로.$.ajax
또는 URL 및 데이터를 매개 변수로 전달합니다.$.post는 $.ajax의 약자이며 URL을 첫 번째 매개 변수로 사용합니다.
따라서 다음과 같이 해야 합니다.
$.ajax({
type: "POST",
url: "http://myURL/database/InsertData.php",
data: "dataid="+ dataid+"&industry="+ industry +"&geolocation="+ geolocation
});
또는 $.post와 함께
$.post("http://myURL/database/InsertData.php", "dataid="+ dataid+"&industry="+ industry +"&geolocation="+ geolocation);
문서는 거의 항상 도움이 된다는 것을 기억하세요.
대신 다음과 같은 개체로 데이터를 전송해 보십시오.
data: {
dataid : dataid,
industry : industry,
geolocation : geolocation
}
에반 말이 맞습니다. 데이터를 개체로 보내려고 하면 jquery가 값을 인코딩하는 URL을 제대로 처리할 것입니다.문자열 연결은 js에서 문제가 될 수 있습니다.
그것은 농담 벌레인 것 같습니다.jQuery.post
는 의줄입니다말의 입니다.jQuery.ajax({method:"post"});
그래서 코드를 이것으로 바꿨고, 그것은 저에게 효과가 있었습니다.그들이 이 문제를 해결하기를 바랍니다.
참고로 이 문제는 1.10.2 및 2.0.2 버전에도 여전히 존재합니다.
언급URL : https://stackoverflow.com/questions/10357445/5bobject20object5d-404-not-found-when-attempting-to-submit-via-ajax
'programing' 카테고리의 다른 글
PowerShell에서 해시 테이블 병합: 어떻게? (0) | 2023.09.04 |
---|---|
판다 데이터 프레임에서 사용하는 메모리를 해제하려면 어떻게 해야 합니까? (0) | 2023.09.04 |
.sql 스크립트 내의 MYSQL 클라이언트에서 전달된 -D 매개 변수 값 사용 (0) | 2023.09.04 |
웹 서버에 파일 쓰기 - ASP.NET (0) | 2023.09.04 |
Node.js에서 상위 디렉토리 이름 가져오기 (0) | 2023.09.04 |