PHP Curl после выполнения не возвращается к Ajax Запрос - PullRequest
0 голосов
/ 07 апреля 2020

Я интегрировал код PHP, чтобы пинговать карту сайта в Google и Bing. Код выполняется отлично, но это факт, если я инициирую запрос из ajax вызова. Он не возвращается обратно

Ниже приведен код Jquery, который я использую, чтобы сделать ajax вызов

$("body").on('click', 'button#sitemap_google_submit', function(event){
    toastr.info("Would require few seconds, Please wait, do not refresh Page..",
                "Submitting Sitemap to Google!",
                {   progressBar:!0,
                    showMethod:"slideDown",
                    hideMethod:"slideUp",
                    timeOut:2e3,
                    preventDuplicates: true,
                    positionClass: "toast-bottom-right"
                }
            );
    $("button#sitemap_google_submit").attr("disabled", true);
    $("button#sitemap_google_submit").html("<i class='ft-loader spinner'></i> &nbsp;Submitting to Google..");

    $.ajax({
            url: '/bypasser/modules/seoController.php',
            type: 'POST',
            dataType: 'JSON',
            data: {type: 'submit', console: 'google'},
        })
        .done(function(resp) {
            $("button#sitemap_google_submit").attr("disabled", false);
            $("button#sitemap_google_submit").html("<i class='fa fa-google fa-lg'></i> &nbsp;Submit to Google");
            toastr[resp.type](resp.message, 
                              resp.heading,
                    {   showMethod:"slideDown",
                        hideMethod:"slideUp",
                        preventDuplicates: true,
                        positionClass: "toast-bottom-right"
                    });
        });
    });

на стороне PHP, который я использую по запросу ниже

<?php
include("appController.php");

$reqType = preg_replace("/[^a-zA-Z]/", "", $_REQUEST['type']);

class seoController Extends appController
{
    public function submitGoogle($url)
    {
        $url = "http://www.google.com/webmasters/sitemaps/ping?sitemap=".$this->websiteBaseURL().$url;
        $returnCode = $this->myCurl($url);
        if($returnCode == 200) {
            echo json_encode(array("type" => "success",
                                    "heading" => "Success!",
                                    "message" => "Sitemap Submitted to Google!!")
                        );
        }else{
            echo json_encode(array("type" => "warning",
                                    "heading" => "Warning!",
                                    "message" => "Problem occured while submitted SiteMap, try again after Sometime!"
                                )
                            );
        }
    }

    function myCurl($url)
    {
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_HEADER , true);  // we want headers
        curl_setopt($ch, CURLOPT_NOBODY, true);  // we don't need body
        curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        return $httpCode;
    }
}

$seoController = new seoController();

if($reqType == "submit" && 
    preg_replace("/[^a-z]/", "", $_POST['console']) == "google")
        $seoController->submitGoogle("sitemap.xml");
?>

Кодирование JSON отлично отображается на панели предварительного просмотра вкладки сети элемента inspect, но почему-то не возвращает ответ на ajax, в чем проблема?

1 Ответ

0 голосов
/ 07 апреля 2020

Установить

curl_setopt($ch, CURLOPT_HEADER , false);  // we don't want headers

вместо

curl_setopt($ch, CURLOPT_HEADER , true);  // we want headers

нам также не нужны заголовки, поскольку, насколько я понимаю ваш вопрос, возможно, вы ищете только код состояния пинга !

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...