PHP - 调用ASP.Net MVC动作

问题描述 投票:0回答:1

我对PHP一无所知,并要求我从PHP调用一个ASP.Net MVC页面来集成到PHP页面上。

我认为使用ajax调用会起作用并且更容易实现。但它似乎不起作用。

我的代码:

<div class="pageContainer">    
    <?php   
        echo 'start debugging';

        $param1=$_GET['param1'];
        $param2=$_GET['param2'];
        $htmlPage = '';

        $parameters = {
            myParam1: $param1,
            myParam2: $param2
        };

        try {
            $.ajax({
                type: 'POST',
                url: 'http://localhost:8080/MyController/MyAction',
                data: $parameters,
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                processdata: true,
                success: function(result){
                    try {
                        $htmlPage = result->HtmlReturned;
                    }
                    catch (er) {
                        alert('Error');
                        return false;
                    }               
                },
                async: true,
                crossDomain: false,
                error: function(er){ alert('Error'); }
            });
        } catch (e) {
            echo 'catch';
            alert('Error');
        }

        echo $htmlPage;
    ?>          
</div>

怎么了?我不能使用AJAX调用吗?我没有得到任何错误,我甚至无法调试,所以我不知道有什么问题。我的页面完全是空的,没有任何标题。

PHP项目不是我的,所以我不能包含任何扩展或类似的东西。

php asp.net ajax asp.net-mvc
1个回答
0
投票

就像@RiggsFoly所说,目前我的ajax调用没有被解释为javascript。所以我将我的代码转换为完全JS代码并将其包装在<script>标记中。

我不知道怎么样,我可以在JS中访问param1param2中的$_GET['param1']$_GET['param2']变量。

所以,现在我的代码更清晰,更有效:

<script type="text/javascript">
    $(document).ready(function()
    {           
        var parameters = {
            myParam1: param1,
            myParam2: param2
        };

        try {
            $.ajax({
                type: 'POST',
                url: 'http://localhost:8080/MyController/MyAction',
                data: parameters,
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                processdata: true,
                success: function(result){
                    try {
                        $(".pageContainer").html(result.HtmlReturned);
                    }
                    catch (er) {
                        alert('Error');
                    }               
                },
                async: true,
                crossDomain: false,
                error: function(er){ alert('Error'); }
            });
        } catch (e) {
            alert('Error');
        }
    });
</script>

<div class="pageContainer">        
</div>
© www.soinside.com 2019 - 2024. All rights reserved.