JQuery调用WCF(非宿主IIS服务)的问题,显示Method not allowed.

yespie yespie 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我想写个WCF,不想布署在IIS上,想用windows服务或宿主在WPF里。现在的问题是用GET方式求请WCF没有问题,但是用POST方式就有问题,先说一下代码是从网上搜来的,我做了一些小小的改动,代码大概如下:

注:
我在IE中用这个地址访问:http://127.0.0.1:3721/employees/InsRow
会显示:Method not allowed.





//IEmployees.cs

using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Runtime.Serialization;

namespace Artech.WcfServices.Service.Interface
{
[ServiceContract]
public interface IEmployees
{
[WebGet(UriTemplate = "all",ResponseFormat =WebMessageFormat.Json)]
IEnumerable<Employee> GetAll();


[OperationContract, WebInvoke(UriTemplate = "InsRow",
Method = "POST",
BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json)]
string InsertRow(string id, string title, string content);

}

[DataContract]
public class Employee
{
[DataMember]
public string Id { get; set; }
[DataMember]
public string Name { get; set; }
[DataMember]
public string Department { get; set; }
[DataMember]
public string Grade { get; set; }
}
}








//EmployeesService.cs

using System.Collections.Generic;
using Artech.WcfServices.Service.Interface;

using System.ServiceModel;
using System.ServiceModel.Web;
using System.ServiceModel.Activation;

namespace Artech.WcfServices.Service
{
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class EmployeesService : IEmployees
{
public IEnumerable<Employee> GetAll()
{
return new List<Employee>
{
new Employee{ Id = "001", Name="张三", Department="开发部", Grade = "G6"},
new Employee{ Id = "002", Name="李四", Department="人事部", Grade = "G7"},
new Employee{ Id = "003", Name="王五", Department="销售部", Grade = "G8"}
};
}


public string InsertRow(string id, string title, string content)
{
return string.Format("您输入的标题是:{0}\n\n您输入的内容是:{1}\n\n此文章的id是:{2}", title, content, id);
}

}
}








//Program.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel.Web;
using System.ServiceModel;
using Artech.WcfServices.Service.Interface;

namespace Artech.WcfServices.Service
{
public class Program
{
static void Main()
{
using (WebServiceHost host = new WebServiceHost(typeof(EmployeesService)))
{
host.Open();
Console.Read();
}
}
}
}







App.config





<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint crossDomainScriptAccessEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
<bindings>
<webHttpBinding>
<binding crossDomainScriptAccessEnabled="true" />
</webHttpBinding>
</bindings>
<services>
<service name="Artech.WcfServices.Service.EmployeesService">
<endpoint kind="webHttpEndpoint"
address="http://127.0.0.1:3721/employees" behaviorConfiguration="ProductsBehavior"
contract="Artech.WcfServices.Service.Interface.IEmployees"/>


</service>
</services>

<behaviors>
<endpointBehaviors>
<behavior name="ProductsBehavior">
<webHttp />
<!--<enableWebScript />如果需要支持脚本调用请启用此项-->
</behavior>
</endpointBehaviors>

<serviceBehaviors>
<behavior name="ProductsBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>


<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

</system.serviceModel>
</configuration>






Default.html




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>员工列表</title>
<style type="text/css">
body
{
font-size: 12px;
text-align: center;
}
#employees
{
border: 1px solid #000000;
margin: 10px auto;
background-color: #eee;
}
#employees tr
{
line-height: 23px;
}
#employees th
{
background-color: #ccc;
color: #fff;
}
.oddRow
{
background-color: #fff;
}
</style>
<script src="Scripts/jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$.ajax({
type: "get",
url: "http://127.0.0.1:3721/employees/all",
dataType: "jsonp",
success: function (employees) {
$.each(employees, function (index, value) {
var detailUrl = "detail.html?id=" + value.Id;
var html = "<tr><td>";
html += value.Id + "</td><td>";
html += "<a href='" + detailUrl + "'>" + value.Name + "</a></td><td>";
html += value.Grade + "</td><td>";
html += value.Department + "</td></tr>";
$("#employees").append(html);
});
$("#employees tr:odd").addClass("oddRow");
}
});

});

function callServer() {
var id = Number($("#id").val());
var title = String($("#title").val());
var content = String($("#content").val());
$.ajax({
cache: false,
async: true,
type: "POST",
dataType: "json",
url: "http://127.0.0.1:3721/employees/InsRow",
data: '{"id":' + id + ',"title":"' + title + '","content":"' + content + '"}',
contentType: "application/json;charset=utf-8",
success: function (msg) {
var a = eval('(' + msg + ')');
if (String(a.d).length > 0) { alert(a.d); }
else { alert("服务器超时"); }
}
});

}


</script>
</head>
<body>
<table id="employees" width="600px">
<tr>
<th>ID</th>
<th>姓名</th>
<th>级别</th>
<th>部门</th>
</tr>
</table>
</p>
<div>
文章标题:<input type="text" id="title" />
<br />
文章内容:<textarea id="content"></textarea>
<input type="hidden" id="id" value="1" /><br />
<input type="button" value="提交" onclick="callServer();" />
</div>

</body>
</html>


...全文

相关推荐

完全复现虚拟同步发电机VSG自适应惯量阻尼控制仿真、根轨迹、调节系数对比(Simulink仿真、Matlab代码实现)

内容概要:本文围绕虚拟同步发电机(VSG)的自适应惯量阻尼控制策略展开,通过Simulink仿真与Matlab代码实现,全面复现并深入分析了VSG在不同控制参数下的动态响应特性。研究重点包括构建VSG的数学模型,设计自适应惯量与阻尼控制算法,利用根轨迹法分析系统稳定性,并对比不同调节系数对系统频率响应、阻尼效果及暂态性能的影响。仿真结果验证了所提自适应控制策略在提升系统频率稳定性和抑制功率波动方面的有效性,尤其在应对负载突变等扰动时展现出优异的鲁棒性。该资源为电力系统仿真、新能源并网控制等领域的研究提供了完整的可复现案例。; 适合人群:具备一定电力系统基础知识和Matlab/Simulink操作能力,从事新能源发电、微电网控制、电力电子与电力系统自动化等相关领域的科研人员、研究生及工程技术人员。; 使用场景及目标:①学习和掌握虚拟同步发电机(VSG)的基本原理及其在现代电网中的应用;②理解并实践自适应惯量与阻尼控制策略的设计与仿真方法;③掌握利用根轨迹法进行电力系统稳定性分析的技能;④为相关课题的论文写作、项目研究或课程设计提供可复现的仿真模型和技术参考。; 阅读建议:此资源以完全复现为目标,不仅提供了详细的仿真模型和代码,还包含了深入的理论分析。学习者应在理解VSG基本原理的基础上,结合文档内容逐步搭建和调试Simulink模型,重点关注参数调节对系统性能的影响,通过动手实践加深对理论知识的理解。

梦想科研社_研学

超扭滑模(STSMC)-快速终端滑模(FTSMC)高阶滑模、磁链无感观测电机控制Matlab仿真(Simulink仿真实现)

内容概要:本文系统研究了永磁同步电机(PMSM)无位置传感器控制中三种滑模速度环控制策略——传统滑模控制(SMC)、超扭滑模控制(STSMC)与快速终端滑模控制(FTSMC)——在离散化仿真环境下的性能差异,并结合高阶滑模磁链观测器实现无感运行。理论分析表明,STSMC通过双增益机制将不连续控制作用嵌入积分项,有效抑制抖振并保持系统鲁棒性;FTSMC则利用非线性终端吸引子实现有限时间收敛,且控制律连续、无切换项。文章详细阐述了各控制器的理论推导、参数整定方法及离散化实现过程,构建的Simulink仿真模型支持从有感向无感的一键切换与控制器灵活配置,所有算法均经过开发板测试验证。仿真结果表明,STSMC在动态响应与抖振抑制的综合性能上最优,FTSMC稳态精度更高,而传统SMC存在明显抖振问题。该研究为工程应用中控制器的选型、优化与实际部署提供了坚实的理论依据与仿真支持。; 适合人群:具备一定现代控制理论基础和Matlab/Simulink仿真能力,从事电机驱动、电力电子、自动化控制及相关领域的研究生、工程师及科研人员。; 使用场景及目标:①深入理解滑模控制在PMSM无感控制中的应用机制与技术演进路径;②掌握STSMC与FTSMC的核心设计原理、参数整定准则及其离散化实现关键技术;③通过对比仿真分析不同滑模策略在动态响应、稳态精度与抖振特性方面的性能差异,为实际系统中控制器的选型、参数优化与工程化落地提供指导。; 阅读建议:建议结合所提供的Simulink仿真模型进行实践操作,重点关注控制器与观测器的模块化搭建、参数调节过程及仿真结果的对比分析,同时可尝试将算法移植至DSP或微控制器等嵌入式平台,以深化对实时控制性能与工程约束条件的理解。

逝川长叹

【顶级EI复现】计及连锁故障传播路径的电力系统 N-k 多阶段双层优化及故障场景筛选模型(Matlab代码实现)

【顶级EI复现】计及连锁故障传播路径的电力系统 N-k 多阶段双层优化及故障场景筛选模型(Matlab代码实现)内容概要:本文提出了一种计及连锁故障传播路径的电力系统 N-k 多阶段双层优化及故障场景筛选模型,旨在提升大规模电力系统在极端或恶意攻击下的安全评估效率。该模型上层以最小化系统负荷损失为目标,优化选择最恶劣的 N-k 故障场景;下层则模拟连锁故障的动态传播过程,通过潮流转移、保护动作与设备相继过载等机制刻画故障演化路径。通过双层交互迭代,筛选出最具威胁的故障组合,并结合多阶段动态模拟实现关键故障场景的有效识别。该方法不仅提高了传统静态 N-k 分析的准确性,还增强了对复杂连锁故障演变行为的建模能力,适用于大型电网的风险评估与预防控制。; 适合人群:具备电力系统分析背景、从事电网安全稳定、风险评估或优化调度研究的研究生、科研人员及工程技术人员。; 使用场景及目标:① 用于识别可能导致严重停电事故的关键故障组合;② 支持电网脆弱环节辨识、防御策略制定与应急预案优化;③ 提升对连锁故障传播机理的理解与仿真能力。; 阅读建议:建议读者结合Matlab代码实现部分深入理解算法流程,重点关注双层优化架构的设计、连锁故障传播规则的建模方式以及场景筛选的收敛性判断方法,以便在实际系统中进行复现与改进。

@橘柑橙柠桔柚

利用高斯定律对点电荷的电通密度(D场)进行MATLAB可视化——二维矢量场和三维曲面图.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

海神之光

AI进程资源管理器, 把AI 接入进程资源管理器

系统工具开发进程资源管理器(Process Explorer / 任务管理器)是系统管理员和开发者排查性能问题的常用工具。传统上,它只能展示 CPU、内存、磁盘等静态指标,而判断「哪个进程异常、为什么异常」仍然依赖人工经验。把 AI 接入进程资源管理器,让大模型 基于实时进程数据自动完成异常检测、根因分析和优化建议,把「看数据」升级为「懂数据」。

qq_2421886332
评论 15
收藏 已收藏
分享
返回顶部
yespie
Web Services 12,164 成员 16,322 内容