programing

AJAX를 통해 제출하려고 할 때 %5Bobject%20Object%5D(404를 찾을 수 없음)

skycolor 2023. 9. 4. 19:40
반응형

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+"&amp;industry="+ industry +"&amp;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로 전송됩니다.

또 다른 문제는 당신이 사용하는 것입니다.&amp;매개 변수를 분리합니다. 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+"&amp;industry="+ industry +"&amp;geolocation="+ geolocation
});

또는 $.post와 함께

$.post("http://myURL/database/InsertData.php", "dataid="+ dataid+"&amp;industry="+ industry +"&amp;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

반응형